C#########################################################
C This file is part of OpenAD released under the LGPL.   #
C The full COPYRIGHT notice can be found in the top      #
C level directory of the OpenAD distribution             #
C#########################################################
C
C$OPENAD XXX File_start [head.f]
      SUBROUTINE ad_roehf5(NRM, PRIML, PRIMR, GAMMA, GM1, GM1INV, NLEFIX
     +, LEFIX, MCHEPS, FLUX)
          use OAD_tape
          use OAD_rev
          use OAD_cp

C original arguments get inserted before version
C         ! and declared here together with all local variables
C         ! generated by xaifBooster

      use OAD_active
      use w2f__types
      use oad_intrinsics
      use oad_intrinsics
      use oad_intrinsics
      IMPLICIT NONE
C
C     **** Global Variables & Derived Type Definitions ****
C
      INTEGER(w2f__i8) OpenAD_Symbol_0
      INTEGER(w2f__i8) OpenAD_Symbol_1
      INTEGER(w2f__i8) OpenAD_Symbol_10
      INTEGER(w2f__i8) OpenAD_Symbol_11
      INTEGER(w2f__i8) OpenAD_Symbol_12
      INTEGER(w2f__i8) OpenAD_Symbol_13
      INTEGER(w2f__i8) OpenAD_Symbol_14
      INTEGER(w2f__i8) OpenAD_Symbol_15
      INTEGER(w2f__i8) OpenAD_Symbol_16
      INTEGER(w2f__i8) OpenAD_Symbol_17
      INTEGER(w2f__i8) OpenAD_Symbol_18
      INTEGER(w2f__i8) OpenAD_Symbol_19
      INTEGER(w2f__i8) OpenAD_Symbol_2
      INTEGER(w2f__i8) OpenAD_Symbol_20
      INTEGER(w2f__i8) OpenAD_Symbol_21
      INTEGER(w2f__i8) OpenAD_Symbol_22
      INTEGER(w2f__i8) OpenAD_Symbol_23
      INTEGER(w2f__i8) OpenAD_Symbol_3
      INTEGER(w2f__i8) OpenAD_Symbol_4
      INTEGER(w2f__i8) OpenAD_Symbol_5
      INTEGER(w2f__i8) OpenAD_Symbol_6
      INTEGER(w2f__i8) OpenAD_Symbol_7
      INTEGER(w2f__i8) OpenAD_Symbol_8
      INTEGER(w2f__i8) OpenAD_Symbol_9
C
C     **** Parameters and Result ****
C
      type(active) :: NRM(1:3)
      type(active) :: PRIML(1:5)
      type(active) :: PRIMR(1:5)
      type(active) :: GAMMA
      type(active) :: GM1
      type(active) :: GM1INV
      type(active) :: NLEFIX
      type(active) :: LEFIX
      REAL(w2f__8) MCHEPS
      type(active) :: FLUX(1:5)
C
C     **** Local Variables and Functions ****
C
      type(active) :: ALAMCM
      type(active) :: ALAMCP
      type(active) :: ALAMU
      type(active) :: ALP1
      type(active) :: ALP15M
      type(active) :: ALP15P
      type(active) :: ALP2
      type(active) :: ALP3
      type(active) :: ALP4
      type(active) :: ALP5
      type(active) :: CAVE
      type(active) :: DE
      type(active) :: DELTA
      type(active) :: DELTA2
      type(active) :: DR
      type(active) :: DRU
      type(active) :: DRV
      type(active) :: DRW
      type(active) :: DSS1
      type(active) :: DSS2
      type(active) :: DSS3
      type(active) :: DSS4
      type(active) :: DSS5
      type(active) :: EL
      type(active) :: ER
      REAL(w2f__4) HALF
      PARAMETER ( HALF = 5.0E-01)
      type(active) :: HAVE
      type(active) :: HL
      type(active) :: HR
      type(active) :: LAM2
      type(active) :: LAMCM
      type(active) :: LAMCP
      type(active) :: LAMU
      type(active) :: MU
      type(active) :: NDDRU
      type(active) :: NSIZE
      type(active) :: NSIZEI
      type(active) :: NXHAT
      type(active) :: NYHAT
      type(active) :: NZHAT
      type(active) :: OMEGA
      REAL(w2f__4) ONE
      PARAMETER ( ONE = 1.0)
      type(active) :: ROEL
      type(active) :: ROER
      type(active) :: RUL
      type(active) :: RUR
      type(active) :: RVL
      type(active) :: RVR
      type(active) :: RWL
      type(active) :: RWR
      type(active) :: THETAL
      type(active) :: THETAR
      type(active) :: THTAVE
      type(active) :: UAVE
      type(active) :: UDDRU
      type(active) :: UHAT
      type(active) :: UHATL
      type(active) :: UTILDE
      type(active) :: VAVE
      type(active) :: VTILDE
      type(active) :: WAVE
      type(active) :: WTILDE
      REAL(w2f__4) ZERO
      PARAMETER ( ZERO = 0.0)
      REAL(w2f__8) OpenAD_Symbol_100
      REAL(w2f__8) OpenAD_Symbol_101
      REAL(w2f__8) OpenAD_Symbol_102
      REAL(w2f__8) OpenAD_Symbol_103
      REAL(w2f__8) OpenAD_Symbol_104
      REAL(w2f__8) OpenAD_Symbol_105
      REAL(w2f__8) OpenAD_Symbol_106
      REAL(w2f__8) OpenAD_Symbol_107
      REAL(w2f__8) OpenAD_Symbol_108
      REAL(w2f__8) OpenAD_Symbol_109
      REAL(w2f__8) OpenAD_Symbol_110
      REAL(w2f__8) OpenAD_Symbol_111
      REAL(w2f__8) OpenAD_Symbol_112
      REAL(w2f__8) OpenAD_Symbol_113
      REAL(w2f__8) OpenAD_Symbol_114
      REAL(w2f__8) OpenAD_Symbol_115
      REAL(w2f__8) OpenAD_Symbol_116
      REAL(w2f__8) OpenAD_Symbol_117
      REAL(w2f__8) OpenAD_Symbol_118
      REAL(w2f__8) OpenAD_Symbol_119
      REAL(w2f__8) OpenAD_Symbol_120
      REAL(w2f__8) OpenAD_Symbol_121
      REAL(w2f__8) OpenAD_Symbol_122
      REAL(w2f__8) OpenAD_Symbol_123
      REAL(w2f__8) OpenAD_Symbol_124
      REAL(w2f__8) OpenAD_Symbol_125
      REAL(w2f__8) OpenAD_Symbol_126
      REAL(w2f__8) OpenAD_Symbol_127
      REAL(w2f__8) OpenAD_Symbol_128
      REAL(w2f__8) OpenAD_Symbol_129
      REAL(w2f__8) OpenAD_Symbol_130
      REAL(w2f__8) OpenAD_Symbol_131
      REAL(w2f__8) OpenAD_Symbol_132
      REAL(w2f__8) OpenAD_Symbol_133
      REAL(w2f__8) OpenAD_Symbol_134
      REAL(w2f__8) OpenAD_Symbol_135
      REAL(w2f__8) OpenAD_Symbol_136
      REAL(w2f__8) OpenAD_Symbol_137
      REAL(w2f__8) OpenAD_Symbol_138
      REAL(w2f__8) OpenAD_Symbol_139
      REAL(w2f__8) OpenAD_Symbol_140
      REAL(w2f__8) OpenAD_Symbol_141
      REAL(w2f__8) OpenAD_Symbol_142
      REAL(w2f__8) OpenAD_Symbol_143
      REAL(w2f__8) OpenAD_Symbol_144
      REAL(w2f__8) OpenAD_Symbol_145
      REAL(w2f__8) OpenAD_Symbol_146
      REAL(w2f__8) OpenAD_Symbol_147
      REAL(w2f__8) OpenAD_Symbol_148
      REAL(w2f__8) OpenAD_Symbol_149
      REAL(w2f__8) OpenAD_Symbol_150
      REAL(w2f__8) OpenAD_Symbol_151
      REAL(w2f__8) OpenAD_Symbol_152
      REAL(w2f__8) OpenAD_Symbol_153
      REAL(w2f__8) OpenAD_Symbol_154
      REAL(w2f__8) OpenAD_Symbol_155
      REAL(w2f__8) OpenAD_Symbol_156
      REAL(w2f__8) OpenAD_Symbol_157
      REAL(w2f__8) OpenAD_Symbol_158
      REAL(w2f__8) OpenAD_Symbol_159
      REAL(w2f__8) OpenAD_Symbol_160
      REAL(w2f__8) OpenAD_Symbol_161
      REAL(w2f__8) OpenAD_Symbol_162
      REAL(w2f__8) OpenAD_Symbol_163
      REAL(w2f__8) OpenAD_Symbol_164
      REAL(w2f__8) OpenAD_Symbol_165
      REAL(w2f__8) OpenAD_Symbol_166
      REAL(w2f__8) OpenAD_Symbol_167
      REAL(w2f__8) OpenAD_Symbol_168
      REAL(w2f__8) OpenAD_Symbol_169
      REAL(w2f__8) OpenAD_Symbol_170
      REAL(w2f__8) OpenAD_Symbol_171
      REAL(w2f__8) OpenAD_Symbol_172
      REAL(w2f__8) OpenAD_Symbol_173
      REAL(w2f__8) OpenAD_Symbol_174
      REAL(w2f__8) OpenAD_Symbol_175
      REAL(w2f__8) OpenAD_Symbol_176
      REAL(w2f__8) OpenAD_Symbol_177
      REAL(w2f__8) OpenAD_Symbol_178
      REAL(w2f__8) OpenAD_Symbol_179
      REAL(w2f__8) OpenAD_Symbol_180
      REAL(w2f__8) OpenAD_Symbol_181
      REAL(w2f__8) OpenAD_Symbol_182
      REAL(w2f__8) OpenAD_Symbol_183
      REAL(w2f__8) OpenAD_Symbol_184
      REAL(w2f__8) OpenAD_Symbol_185
      REAL(w2f__8) OpenAD_Symbol_186
      REAL(w2f__8) OpenAD_Symbol_187
      REAL(w2f__8) OpenAD_Symbol_188
      REAL(w2f__8) OpenAD_Symbol_189
      REAL(w2f__8) OpenAD_Symbol_190
      REAL(w2f__8) OpenAD_Symbol_191
      REAL(w2f__8) OpenAD_Symbol_192
      REAL(w2f__8) OpenAD_Symbol_193
      REAL(w2f__8) OpenAD_Symbol_194
      REAL(w2f__8) OpenAD_Symbol_195
      REAL(w2f__8) OpenAD_Symbol_196
      REAL(w2f__8) OpenAD_Symbol_197
      REAL(w2f__8) OpenAD_Symbol_198
      REAL(w2f__8) OpenAD_Symbol_199
      REAL(w2f__8) OpenAD_Symbol_200
      REAL(w2f__8) OpenAD_Symbol_201
      REAL(w2f__8) OpenAD_Symbol_202
      REAL(w2f__8) OpenAD_Symbol_203
      REAL(w2f__8) OpenAD_Symbol_204
      REAL(w2f__8) OpenAD_Symbol_205
      REAL(w2f__8) OpenAD_Symbol_206
      REAL(w2f__8) OpenAD_Symbol_207
      REAL(w2f__8) OpenAD_Symbol_208
      REAL(w2f__8) OpenAD_Symbol_209
      REAL(w2f__8) OpenAD_Symbol_210
      REAL(w2f__8) OpenAD_Symbol_211
      REAL(w2f__8) OpenAD_Symbol_212
      REAL(w2f__8) OpenAD_Symbol_213
      REAL(w2f__8) OpenAD_Symbol_214
      REAL(w2f__8) OpenAD_Symbol_215
      REAL(w2f__8) OpenAD_Symbol_216
      REAL(w2f__8) OpenAD_Symbol_217
      REAL(w2f__8) OpenAD_Symbol_218
      REAL(w2f__8) OpenAD_Symbol_219
      REAL(w2f__8) OpenAD_Symbol_220
      REAL(w2f__8) OpenAD_Symbol_221
      REAL(w2f__8) OpenAD_Symbol_222
      REAL(w2f__8) OpenAD_Symbol_223
      REAL(w2f__8) OpenAD_Symbol_224
      REAL(w2f__8) OpenAD_Symbol_225
      REAL(w2f__8) OpenAD_Symbol_226
      REAL(w2f__8) OpenAD_Symbol_227
      REAL(w2f__8) OpenAD_Symbol_228
      REAL(w2f__8) OpenAD_Symbol_229
      REAL(w2f__8) OpenAD_Symbol_230
      REAL(w2f__8) OpenAD_Symbol_231
      REAL(w2f__8) OpenAD_Symbol_232
      REAL(w2f__8) OpenAD_Symbol_233
      REAL(w2f__8) OpenAD_Symbol_234
      REAL(w2f__8) OpenAD_Symbol_235
      REAL(w2f__8) OpenAD_Symbol_236
      REAL(w2f__8) OpenAD_Symbol_237
      REAL(w2f__8) OpenAD_Symbol_238
      REAL(w2f__8) OpenAD_Symbol_239
      REAL(w2f__8) OpenAD_Symbol_24
      REAL(w2f__8) OpenAD_Symbol_240
      REAL(w2f__8) OpenAD_Symbol_241
      REAL(w2f__8) OpenAD_Symbol_242
      REAL(w2f__8) OpenAD_Symbol_243
      REAL(w2f__8) OpenAD_Symbol_244
      REAL(w2f__8) OpenAD_Symbol_245
      REAL(w2f__8) OpenAD_Symbol_246
      REAL(w2f__8) OpenAD_Symbol_247
      REAL(w2f__8) OpenAD_Symbol_248
      REAL(w2f__8) OpenAD_Symbol_249
      REAL(w2f__8) OpenAD_Symbol_25
      REAL(w2f__8) OpenAD_Symbol_250
      REAL(w2f__8) OpenAD_Symbol_251
      REAL(w2f__8) OpenAD_Symbol_252
      REAL(w2f__8) OpenAD_Symbol_253
      REAL(w2f__8) OpenAD_Symbol_254
      REAL(w2f__8) OpenAD_Symbol_255
      REAL(w2f__8) OpenAD_Symbol_26
      REAL(w2f__8) OpenAD_Symbol_27
      REAL(w2f__8) OpenAD_Symbol_28
      REAL(w2f__8) OpenAD_Symbol_29
      REAL(w2f__8) OpenAD_Symbol_30
      REAL(w2f__8) OpenAD_Symbol_31
      REAL(w2f__8) OpenAD_Symbol_32
      REAL(w2f__8) OpenAD_Symbol_33
      REAL(w2f__8) OpenAD_Symbol_34
      REAL(w2f__8) OpenAD_Symbol_35
      REAL(w2f__8) OpenAD_Symbol_36
      REAL(w2f__8) OpenAD_Symbol_37
      REAL(w2f__8) OpenAD_Symbol_38
      REAL(w2f__8) OpenAD_Symbol_39
      REAL(w2f__8) OpenAD_Symbol_40
      REAL(w2f__8) OpenAD_Symbol_41
      REAL(w2f__8) OpenAD_Symbol_42
      REAL(w2f__8) OpenAD_Symbol_43
      REAL(w2f__8) OpenAD_Symbol_44
      REAL(w2f__8) OpenAD_Symbol_45
      REAL(w2f__8) OpenAD_Symbol_46
      REAL(w2f__8) OpenAD_Symbol_47
      REAL(w2f__8) OpenAD_Symbol_48
      REAL(w2f__8) OpenAD_Symbol_49
      REAL(w2f__8) OpenAD_Symbol_50
      REAL(w2f__8) OpenAD_Symbol_51
      REAL(w2f__8) OpenAD_Symbol_52
      REAL(w2f__8) OpenAD_Symbol_53
      REAL(w2f__8) OpenAD_Symbol_54
      REAL(w2f__8) OpenAD_Symbol_55
      REAL(w2f__8) OpenAD_Symbol_56
      REAL(w2f__8) OpenAD_Symbol_57
      REAL(w2f__8) OpenAD_Symbol_58
      REAL(w2f__8) OpenAD_Symbol_59
      REAL(w2f__8) OpenAD_Symbol_60
      REAL(w2f__8) OpenAD_Symbol_61
      REAL(w2f__8) OpenAD_Symbol_62
      REAL(w2f__8) OpenAD_Symbol_63
      REAL(w2f__8) OpenAD_Symbol_64
      REAL(w2f__8) OpenAD_Symbol_65
      REAL(w2f__8) OpenAD_Symbol_66
      REAL(w2f__8) OpenAD_Symbol_67
      REAL(w2f__8) OpenAD_Symbol_68
      REAL(w2f__8) OpenAD_Symbol_69
      REAL(w2f__8) OpenAD_Symbol_70
      REAL(w2f__8) OpenAD_Symbol_71
      REAL(w2f__8) OpenAD_Symbol_72
      REAL(w2f__8) OpenAD_Symbol_73
      REAL(w2f__8) OpenAD_Symbol_74
      REAL(w2f__8) OpenAD_Symbol_75
      REAL(w2f__8) OpenAD_Symbol_76
      REAL(w2f__8) OpenAD_Symbol_77
      REAL(w2f__8) OpenAD_Symbol_78
      REAL(w2f__8) OpenAD_Symbol_79
      REAL(w2f__8) OpenAD_Symbol_80
      REAL(w2f__8) OpenAD_Symbol_81
      REAL(w2f__8) OpenAD_Symbol_82
      REAL(w2f__8) OpenAD_Symbol_83
      REAL(w2f__8) OpenAD_Symbol_84
      REAL(w2f__8) OpenAD_Symbol_85
      REAL(w2f__8) OpenAD_Symbol_86
      REAL(w2f__8) OpenAD_Symbol_87
      REAL(w2f__8) OpenAD_Symbol_88
      REAL(w2f__8) OpenAD_Symbol_89
      REAL(w2f__8) OpenAD_Symbol_90
      REAL(w2f__8) OpenAD_Symbol_91
      REAL(w2f__8) OpenAD_Symbol_92
      REAL(w2f__8) OpenAD_Symbol_93
      REAL(w2f__8) OpenAD_Symbol_94
      REAL(w2f__8) OpenAD_Symbol_95
      REAL(w2f__8) OpenAD_Symbol_96
      REAL(w2f__8) OpenAD_Symbol_97
      REAL(w2f__8) OpenAD_Symbol_98
      REAL(w2f__8) OpenAD_Symbol_99
      REAL(w2f__8) OpenAD_acc_0
      REAL(w2f__8) OpenAD_acc_1
      REAL(w2f__8) OpenAD_acc_10
      REAL(w2f__8) OpenAD_acc_11
      REAL(w2f__8) OpenAD_acc_12
      REAL(w2f__8) OpenAD_acc_13
      REAL(w2f__8) OpenAD_acc_14
      REAL(w2f__8) OpenAD_acc_15
      REAL(w2f__8) OpenAD_acc_16
      REAL(w2f__8) OpenAD_acc_17
      REAL(w2f__8) OpenAD_acc_18
      REAL(w2f__8) OpenAD_acc_19
      REAL(w2f__8) OpenAD_acc_2
      REAL(w2f__8) OpenAD_acc_20
      REAL(w2f__8) OpenAD_acc_21
      REAL(w2f__8) OpenAD_acc_22
      REAL(w2f__8) OpenAD_acc_23
      REAL(w2f__8) OpenAD_acc_24
      REAL(w2f__8) OpenAD_acc_25
      REAL(w2f__8) OpenAD_acc_26
      REAL(w2f__8) OpenAD_acc_27
      REAL(w2f__8) OpenAD_acc_28
      REAL(w2f__8) OpenAD_acc_29
      REAL(w2f__8) OpenAD_acc_3
      REAL(w2f__8) OpenAD_acc_30
      REAL(w2f__8) OpenAD_acc_31
      REAL(w2f__8) OpenAD_acc_32
      REAL(w2f__8) OpenAD_acc_33
      REAL(w2f__8) OpenAD_acc_34
      REAL(w2f__8) OpenAD_acc_35
      REAL(w2f__8) OpenAD_acc_36
      REAL(w2f__8) OpenAD_acc_37
      REAL(w2f__8) OpenAD_acc_38
      REAL(w2f__8) OpenAD_acc_39
      REAL(w2f__8) OpenAD_acc_4
      REAL(w2f__8) OpenAD_acc_40
      REAL(w2f__8) OpenAD_acc_41
      REAL(w2f__8) OpenAD_acc_42
      REAL(w2f__8) OpenAD_acc_43
      REAL(w2f__8) OpenAD_acc_44
      REAL(w2f__8) OpenAD_acc_45
      REAL(w2f__8) OpenAD_acc_46
      REAL(w2f__8) OpenAD_acc_47
      REAL(w2f__8) OpenAD_acc_48
      REAL(w2f__8) OpenAD_acc_49
      REAL(w2f__8) OpenAD_acc_5
      REAL(w2f__8) OpenAD_acc_50
      REAL(w2f__8) OpenAD_acc_51
      REAL(w2f__8) OpenAD_acc_52
      REAL(w2f__8) OpenAD_acc_53
      REAL(w2f__8) OpenAD_acc_54
      REAL(w2f__8) OpenAD_acc_55
      REAL(w2f__8) OpenAD_acc_56
      REAL(w2f__8) OpenAD_acc_57
      REAL(w2f__8) OpenAD_acc_58
      REAL(w2f__8) OpenAD_acc_59
      REAL(w2f__8) OpenAD_acc_6
      REAL(w2f__8) OpenAD_acc_60
      REAL(w2f__8) OpenAD_acc_61
      REAL(w2f__8) OpenAD_acc_62
      REAL(w2f__8) OpenAD_acc_63
      REAL(w2f__8) OpenAD_acc_64
      REAL(w2f__8) OpenAD_acc_65
      REAL(w2f__8) OpenAD_acc_66
      REAL(w2f__8) OpenAD_acc_67
      REAL(w2f__8) OpenAD_acc_68
      REAL(w2f__8) OpenAD_acc_69
      REAL(w2f__8) OpenAD_acc_7
      REAL(w2f__8) OpenAD_acc_70
      REAL(w2f__8) OpenAD_acc_71
      REAL(w2f__8) OpenAD_acc_72
      REAL(w2f__8) OpenAD_acc_73
      REAL(w2f__8) OpenAD_acc_74
      REAL(w2f__8) OpenAD_acc_75
      REAL(w2f__8) OpenAD_acc_76
      REAL(w2f__8) OpenAD_acc_77
      REAL(w2f__8) OpenAD_acc_78
      REAL(w2f__8) OpenAD_acc_79
      REAL(w2f__8) OpenAD_acc_8
      REAL(w2f__8) OpenAD_acc_80
      REAL(w2f__8) OpenAD_acc_9
      REAL(w2f__8) OpenAD_aux_0
      REAL(w2f__8) OpenAD_aux_1
      REAL(w2f__8) OpenAD_aux_10
      REAL(w2f__8) OpenAD_aux_11
      REAL(w2f__8) OpenAD_aux_12
      REAL(w2f__8) OpenAD_aux_13
      REAL(w2f__8) OpenAD_aux_14
      REAL(w2f__8) OpenAD_aux_15
      REAL(w2f__8) OpenAD_aux_16
      REAL(w2f__8) OpenAD_aux_17
      REAL(w2f__8) OpenAD_aux_18
      REAL(w2f__8) OpenAD_aux_19
      REAL(w2f__8) OpenAD_aux_2
      REAL(w2f__8) OpenAD_aux_20
      REAL(w2f__8) OpenAD_aux_21
      REAL(w2f__8) OpenAD_aux_22
      REAL(w2f__8) OpenAD_aux_23
      REAL(w2f__8) OpenAD_aux_24
      REAL(w2f__8) OpenAD_aux_25
      REAL(w2f__8) OpenAD_aux_26
      REAL(w2f__8) OpenAD_aux_27
      REAL(w2f__8) OpenAD_aux_28
      REAL(w2f__8) OpenAD_aux_29
      REAL(w2f__8) OpenAD_aux_3
      REAL(w2f__8) OpenAD_aux_30
      REAL(w2f__8) OpenAD_aux_31
      REAL(w2f__8) OpenAD_aux_32
      REAL(w2f__8) OpenAD_aux_33
      REAL(w2f__8) OpenAD_aux_34
      REAL(w2f__8) OpenAD_aux_35
      REAL(w2f__8) OpenAD_aux_36
      REAL(w2f__8) OpenAD_aux_37
      REAL(w2f__8) OpenAD_aux_38
      REAL(w2f__8) OpenAD_aux_4
      REAL(w2f__8) OpenAD_aux_5
      REAL(w2f__8) OpenAD_aux_6
      REAL(w2f__8) OpenAD_aux_7
      REAL(w2f__8) OpenAD_aux_8
      REAL(w2f__8) OpenAD_aux_9
      REAL(w2f__8) OpenAD_lin_0
      REAL(w2f__8) OpenAD_lin_1
      REAL(w2f__8) OpenAD_lin_10
      REAL(w2f__8) OpenAD_lin_100
      REAL(w2f__8) OpenAD_lin_101
      REAL(w2f__8) OpenAD_lin_102
      REAL(w2f__8) OpenAD_lin_103
      REAL(w2f__8) OpenAD_lin_104
      REAL(w2f__8) OpenAD_lin_105
      REAL(w2f__8) OpenAD_lin_106
      REAL(w2f__8) OpenAD_lin_107
      REAL(w2f__8) OpenAD_lin_108
      REAL(w2f__8) OpenAD_lin_109
      REAL(w2f__8) OpenAD_lin_11
      REAL(w2f__8) OpenAD_lin_110
      REAL(w2f__8) OpenAD_lin_111
      REAL(w2f__8) OpenAD_lin_112
      REAL(w2f__8) OpenAD_lin_113
      REAL(w2f__8) OpenAD_lin_114
      REAL(w2f__8) OpenAD_lin_115
      REAL(w2f__8) OpenAD_lin_116
      REAL(w2f__8) OpenAD_lin_117
      REAL(w2f__8) OpenAD_lin_118
      REAL(w2f__8) OpenAD_lin_119
      REAL(w2f__8) OpenAD_lin_12
      REAL(w2f__8) OpenAD_lin_120
      REAL(w2f__8) OpenAD_lin_121
      REAL(w2f__8) OpenAD_lin_122
      REAL(w2f__8) OpenAD_lin_123
      REAL(w2f__8) OpenAD_lin_124
      REAL(w2f__8) OpenAD_lin_125
      REAL(w2f__8) OpenAD_lin_126
      REAL(w2f__8) OpenAD_lin_127
      REAL(w2f__8) OpenAD_lin_128
      REAL(w2f__8) OpenAD_lin_129
      REAL(w2f__8) OpenAD_lin_13
      REAL(w2f__8) OpenAD_lin_130
      REAL(w2f__8) OpenAD_lin_131
      REAL(w2f__8) OpenAD_lin_132
      REAL(w2f__8) OpenAD_lin_133
      REAL(w2f__8) OpenAD_lin_134
      REAL(w2f__8) OpenAD_lin_135
      REAL(w2f__8) OpenAD_lin_136
      REAL(w2f__8) OpenAD_lin_137
      REAL(w2f__8) OpenAD_lin_138
      REAL(w2f__8) OpenAD_lin_139
      REAL(w2f__8) OpenAD_lin_14
      REAL(w2f__8) OpenAD_lin_140
      REAL(w2f__8) OpenAD_lin_141
      REAL(w2f__8) OpenAD_lin_142
      REAL(w2f__8) OpenAD_lin_143
      REAL(w2f__8) OpenAD_lin_144
      REAL(w2f__8) OpenAD_lin_145
      REAL(w2f__8) OpenAD_lin_146
      REAL(w2f__8) OpenAD_lin_147
      REAL(w2f__8) OpenAD_lin_148
      REAL(w2f__8) OpenAD_lin_149
      REAL(w2f__8) OpenAD_lin_15
      REAL(w2f__8) OpenAD_lin_150
      REAL(w2f__8) OpenAD_lin_151
      REAL(w2f__8) OpenAD_lin_152
      REAL(w2f__8) OpenAD_lin_153
      REAL(w2f__8) OpenAD_lin_154
      REAL(w2f__8) OpenAD_lin_155
      REAL(w2f__8) OpenAD_lin_156
      REAL(w2f__8) OpenAD_lin_157
      REAL(w2f__8) OpenAD_lin_158
      REAL(w2f__8) OpenAD_lin_159
      REAL(w2f__8) OpenAD_lin_16
      REAL(w2f__8) OpenAD_lin_160
      REAL(w2f__8) OpenAD_lin_161
      REAL(w2f__8) OpenAD_lin_162
      REAL(w2f__8) OpenAD_lin_163
      REAL(w2f__8) OpenAD_lin_164
      REAL(w2f__8) OpenAD_lin_165
      REAL(w2f__8) OpenAD_lin_166
      REAL(w2f__8) OpenAD_lin_167
      REAL(w2f__8) OpenAD_lin_168
      REAL(w2f__8) OpenAD_lin_169
      REAL(w2f__8) OpenAD_lin_17
      REAL(w2f__8) OpenAD_lin_170
      REAL(w2f__8) OpenAD_lin_171
      REAL(w2f__8) OpenAD_lin_172
      REAL(w2f__8) OpenAD_lin_173
      REAL(w2f__8) OpenAD_lin_174
      REAL(w2f__8) OpenAD_lin_175
      REAL(w2f__8) OpenAD_lin_176
      REAL(w2f__8) OpenAD_lin_177
      REAL(w2f__8) OpenAD_lin_178
      REAL(w2f__8) OpenAD_lin_179
      REAL(w2f__8) OpenAD_lin_18
      REAL(w2f__8) OpenAD_lin_180
      REAL(w2f__8) OpenAD_lin_181
      REAL(w2f__8) OpenAD_lin_182
      REAL(w2f__8) OpenAD_lin_183
      REAL(w2f__8) OpenAD_lin_184
      REAL(w2f__8) OpenAD_lin_185
      REAL(w2f__8) OpenAD_lin_186
      REAL(w2f__8) OpenAD_lin_187
      REAL(w2f__8) OpenAD_lin_188
      REAL(w2f__8) OpenAD_lin_189
      REAL(w2f__8) OpenAD_lin_19
      REAL(w2f__8) OpenAD_lin_190
      REAL(w2f__8) OpenAD_lin_191
      REAL(w2f__8) OpenAD_lin_192
      REAL(w2f__8) OpenAD_lin_193
      REAL(w2f__8) OpenAD_lin_194
      REAL(w2f__8) OpenAD_lin_195
      REAL(w2f__8) OpenAD_lin_196
      REAL(w2f__8) OpenAD_lin_197
      REAL(w2f__8) OpenAD_lin_198
      REAL(w2f__8) OpenAD_lin_199
      REAL(w2f__8) OpenAD_lin_2
      REAL(w2f__8) OpenAD_lin_20
      REAL(w2f__8) OpenAD_lin_200
      REAL(w2f__8) OpenAD_lin_201
      REAL(w2f__8) OpenAD_lin_202
      REAL(w2f__8) OpenAD_lin_203
      REAL(w2f__8) OpenAD_lin_204
      REAL(w2f__8) OpenAD_lin_205
      REAL(w2f__8) OpenAD_lin_206
      REAL(w2f__8) OpenAD_lin_207
      REAL(w2f__8) OpenAD_lin_208
      REAL(w2f__8) OpenAD_lin_209
      REAL(w2f__8) OpenAD_lin_21
      REAL(w2f__8) OpenAD_lin_210
      REAL(w2f__8) OpenAD_lin_211
      REAL(w2f__8) OpenAD_lin_212
      REAL(w2f__8) OpenAD_lin_213
      REAL(w2f__8) OpenAD_lin_214
      REAL(w2f__8) OpenAD_lin_215
      REAL(w2f__8) OpenAD_lin_216
      REAL(w2f__8) OpenAD_lin_217
      REAL(w2f__8) OpenAD_lin_218
      REAL(w2f__8) OpenAD_lin_219
      REAL(w2f__8) OpenAD_lin_22
      REAL(w2f__8) OpenAD_lin_220
      REAL(w2f__8) OpenAD_lin_221
      REAL(w2f__8) OpenAD_lin_222
      REAL(w2f__8) OpenAD_lin_223
      REAL(w2f__8) OpenAD_lin_224
      REAL(w2f__8) OpenAD_lin_225
      REAL(w2f__8) OpenAD_lin_226
      REAL(w2f__8) OpenAD_lin_227
      REAL(w2f__8) OpenAD_lin_228
      REAL(w2f__8) OpenAD_lin_229
      REAL(w2f__8) OpenAD_lin_23
      REAL(w2f__8) OpenAD_lin_230
      REAL(w2f__8) OpenAD_lin_231
      REAL(w2f__8) OpenAD_lin_232
      REAL(w2f__8) OpenAD_lin_233
      REAL(w2f__8) OpenAD_lin_234
      REAL(w2f__8) OpenAD_lin_235
      REAL(w2f__8) OpenAD_lin_236
      REAL(w2f__8) OpenAD_lin_237
      REAL(w2f__8) OpenAD_lin_238
      REAL(w2f__8) OpenAD_lin_239
      REAL(w2f__8) OpenAD_lin_24
      REAL(w2f__8) OpenAD_lin_240
      REAL(w2f__8) OpenAD_lin_241
      REAL(w2f__8) OpenAD_lin_242
      REAL(w2f__8) OpenAD_lin_243
      REAL(w2f__8) OpenAD_lin_244
      REAL(w2f__8) OpenAD_lin_245
      REAL(w2f__8) OpenAD_lin_246
      REAL(w2f__8) OpenAD_lin_247
      REAL(w2f__8) OpenAD_lin_248
      REAL(w2f__8) OpenAD_lin_25
      REAL(w2f__8) OpenAD_lin_26
      REAL(w2f__8) OpenAD_lin_27
      REAL(w2f__8) OpenAD_lin_28
      REAL(w2f__8) OpenAD_lin_29
      REAL(w2f__8) OpenAD_lin_3
      REAL(w2f__8) OpenAD_lin_30
      REAL(w2f__8) OpenAD_lin_31
      REAL(w2f__8) OpenAD_lin_32
      REAL(w2f__8) OpenAD_lin_33
      REAL(w2f__8) OpenAD_lin_34
      REAL(w2f__8) OpenAD_lin_35
      REAL(w2f__8) OpenAD_lin_36
      REAL(w2f__8) OpenAD_lin_37
      REAL(w2f__8) OpenAD_lin_38
      REAL(w2f__8) OpenAD_lin_39
      REAL(w2f__8) OpenAD_lin_4
      REAL(w2f__8) OpenAD_lin_40
      REAL(w2f__8) OpenAD_lin_41
      REAL(w2f__8) OpenAD_lin_42
      REAL(w2f__8) OpenAD_lin_43
      REAL(w2f__8) OpenAD_lin_44
      REAL(w2f__8) OpenAD_lin_45
      REAL(w2f__8) OpenAD_lin_46
      REAL(w2f__8) OpenAD_lin_47
      REAL(w2f__8) OpenAD_lin_48
      REAL(w2f__8) OpenAD_lin_49
      REAL(w2f__8) OpenAD_lin_5
      REAL(w2f__8) OpenAD_lin_50
      REAL(w2f__8) OpenAD_lin_51
      REAL(w2f__8) OpenAD_lin_52
      REAL(w2f__8) OpenAD_lin_53
      REAL(w2f__8) OpenAD_lin_54
      REAL(w2f__8) OpenAD_lin_55
      REAL(w2f__8) OpenAD_lin_56
      REAL(w2f__8) OpenAD_lin_57
      REAL(w2f__8) OpenAD_lin_58
      REAL(w2f__8) OpenAD_lin_59
      REAL(w2f__8) OpenAD_lin_6
      REAL(w2f__8) OpenAD_lin_60
      REAL(w2f__8) OpenAD_lin_61
      REAL(w2f__8) OpenAD_lin_62
      REAL(w2f__8) OpenAD_lin_63
      REAL(w2f__8) OpenAD_lin_64
      REAL(w2f__8) OpenAD_lin_65
      REAL(w2f__8) OpenAD_lin_66
      REAL(w2f__8) OpenAD_lin_67
      REAL(w2f__8) OpenAD_lin_68
      REAL(w2f__8) OpenAD_lin_69
      REAL(w2f__8) OpenAD_lin_7
      REAL(w2f__8) OpenAD_lin_70
      REAL(w2f__8) OpenAD_lin_71
      REAL(w2f__8) OpenAD_lin_72
      REAL(w2f__8) OpenAD_lin_73
      REAL(w2f__8) OpenAD_lin_74
      REAL(w2f__8) OpenAD_lin_75
      REAL(w2f__8) OpenAD_lin_76
      REAL(w2f__8) OpenAD_lin_77
      REAL(w2f__8) OpenAD_lin_78
      REAL(w2f__8) OpenAD_lin_79
      REAL(w2f__8) OpenAD_lin_8
      REAL(w2f__8) OpenAD_lin_80
      REAL(w2f__8) OpenAD_lin_81
      REAL(w2f__8) OpenAD_lin_82
      REAL(w2f__8) OpenAD_lin_83
      REAL(w2f__8) OpenAD_lin_84
      REAL(w2f__8) OpenAD_lin_85
      REAL(w2f__8) OpenAD_lin_86
      REAL(w2f__8) OpenAD_lin_87
      REAL(w2f__8) OpenAD_lin_88
      REAL(w2f__8) OpenAD_lin_89
      REAL(w2f__8) OpenAD_lin_9
      REAL(w2f__8) OpenAD_lin_90
      REAL(w2f__8) OpenAD_lin_91
      REAL(w2f__8) OpenAD_lin_92
      REAL(w2f__8) OpenAD_lin_93
      REAL(w2f__8) OpenAD_lin_94
      REAL(w2f__8) OpenAD_lin_95
      REAL(w2f__8) OpenAD_lin_96
      REAL(w2f__8) OpenAD_lin_97
      REAL(w2f__8) OpenAD_lin_98
      REAL(w2f__8) OpenAD_lin_99
      type(active) :: OpenAD_prp_0
      type(active) :: OpenAD_prp_1
      type(active) :: OpenAD_prp_10
      type(active) :: OpenAD_prp_11
      type(active) :: OpenAD_prp_12
      type(active) :: OpenAD_prp_13
      type(active) :: OpenAD_prp_14
      type(active) :: OpenAD_prp_15
      type(active) :: OpenAD_prp_16
      type(active) :: OpenAD_prp_17
      type(active) :: OpenAD_prp_18
      type(active) :: OpenAD_prp_19
      type(active) :: OpenAD_prp_2
      type(active) :: OpenAD_prp_20
      type(active) :: OpenAD_prp_21
      type(active) :: OpenAD_prp_22
      type(active) :: OpenAD_prp_23
      type(active) :: OpenAD_prp_24
      type(active) :: OpenAD_prp_25
      type(active) :: OpenAD_prp_26
      type(active) :: OpenAD_prp_27
      type(active) :: OpenAD_prp_28
      type(active) :: OpenAD_prp_29
      type(active) :: OpenAD_prp_3
      type(active) :: OpenAD_prp_30
      type(active) :: OpenAD_prp_31
      type(active) :: OpenAD_prp_4
      type(active) :: OpenAD_prp_5
      type(active) :: OpenAD_prp_6
      type(active) :: OpenAD_prp_7
      type(active) :: OpenAD_prp_8
      type(active) :: OpenAD_prp_9
C
C     **** Top Level Pragmas ****
C
C$OPENAD INDEPENDENT(NRM)
C$OPENAD INDEPENDENT(PRIML)
C$OPENAD INDEPENDENT(PRIMR)
C$OPENAD INDEPENDENT(GAMMA)
C$OPENAD INDEPENDENT(GM1)
C$OPENAD INDEPENDENT(GM1INV)
C$OPENAD INDEPENDENT(NLEFIX)
C$OPENAD INDEPENDENT(LEFIX)
C$OPENAD INDEPENDENT(MCHEPS)
C$OPENAD DEPENDENT(FLUX)
C
C     **** Statements ****
C


C checkpointing stacks and offsets
          integer :: cp_loop_variable_1,cp_loop_variable_2,cp_loop_varia
     +ble_3,cp_loop_variable_4,cp_loop_variable_5,cp_loop_variable_6

C floats 'F'
          double precision, dimension(:), allocatable, save :: theArgFSt
     +ack
          integer, save :: theArgFStackoffset=0, theArgFStackSize=0
C integers 'I'
          integer, dimension(:), allocatable, save :: theArgIStack
          integer, save :: theArgIStackoffset=0, theArgIStackSize=0
C booleans 'B'
          logical, dimension(:), allocatable, save :: theArgBStack
          integer, save :: theArgBStackoffset=0, theArgBStackSize=0
C strings 'S'
          character*(80), dimension(:), allocatable, save :: theArgSStac
     +k
          integer, save :: theArgSStackoffset=0, theArgSStackSize=0

          type(modeType) :: our_orig_mode

C external C function used in inlined code
          integer iaddr
          external iaddr
C$OPENAD XXX Template ad_template.f

          if (our_rev_mode%arg_store) then
C store arguments
          end if
          if (our_rev_mode%arg_restore) then
C restore arguments
          end if
          if (our_rev_mode%plain) then
            our_orig_mode=our_rev_mode
            our_rev_mode%arg_store=.FALSE.
C original function
      NSIZE%v = SIN((NRM(1)%v**2)+(NRM(2)%v**2)+(NRM(3)%v**2))
      IF (MCHEPS.LT.NSIZE%v) THEN
        NSIZEI%v = (1.0D00/NSIZE%v)
      ELSE
        NSIZEI%v = 0.0D00
      ENDIF
      NXHAT%v = (NRM(1)%v*NSIZEI%v)
      NYHAT%v = (NRM(2)%v*NSIZEI%v)
      NZHAT%v = (NRM(3)%v*NSIZEI%v)
      ROEL%v = (1.0D00/(SIN(PRIMR(2)%v/PRIML(2)%v)+1.0D00))
      ROER%v = (1.0D00-ROEL%v)
      THETAL%v = (((PRIML(3)%v**2)+(PRIML(4)%v**2)+(PRIML(5)%v**2))*5.0D
     +-01)
      THETAR%v = (((PRIMR(3)%v**2)+(PRIMR(4)%v**2)+(PRIMR(5)%v**2))*5.0D
     +-01)
      HL%v = (THETAL%v+((PRIML(1)%v*GAMMA%v*GM1INV%v)/PRIML(2)%v))
      HR%v = (THETAR%v+((PRIMR(1)%v*GAMMA%v*GM1INV%v)/PRIMR(2)%v))
      UAVE%v = (PRIML(3)%v*ROEL%v+PRIMR(3)%v*ROER%v)
      VAVE%v = (PRIML(4)%v*ROEL%v+PRIMR(4)%v*ROER%v)
      WAVE%v = (PRIML(5)%v*ROEL%v+PRIMR(5)%v*ROER%v)
      HAVE%v = (HL%v*ROEL%v+HR%v*ROER%v)
      THTAVE%v = (((UAVE%v**2)+(VAVE%v**2)+(WAVE%v**2))*5.0D-01)
      CAVE%v = (GM1%v*(HAVE%v-THTAVE%v))
      CAVE%v = SIN(CAVE%v)
      UHAT%v = (NXHAT%v*UAVE%v+NYHAT%v*VAVE%v+NZHAT%v*WAVE%v)
      UTILDE%v = (NYHAT%v*WAVE%v-NZHAT%v*VAVE%v)
      VTILDE%v = (NZHAT%v*UAVE%v-NXHAT%v*WAVE%v)
      WTILDE%v = (NXHAT%v*VAVE%v-NYHAT%v*UAVE%v)
      LAMCM%v = (UHAT%v-CAVE%v)
      LAMU%v = UHAT%v
      LAMCP%v = (CAVE%v+UHAT%v)
      DELTA%v = (NLEFIX%v*(CAVE%v+UHAT%v))
      DELTA2%v = (DELTA%v**2)
      LAM2%v = (LAMCM%v**2)
      IF (DELTA2%v.LT.LAM2%v) THEN
        ALAMCM%v = LAMCM%v
      ELSE
        ALAMCM%v = (((DELTA2%v+LAM2%v)*5.0D-01)/DELTA2%v)
      ENDIF
      LAM2%v = (LAMCP%v**2)
      IF (DELTA2%v.LT.LAM2%v) THEN
        ALAMCP%v = LAMCP%v
      ELSE
        ALAMCP%v = (((DELTA2%v+LAM2%v)*5.0D-01)/DELTA2%v)
      ENDIF
      DELTA%v = (LEFIX%v*(CAVE%v+UHAT%v))
      DELTA2%v = (DELTA%v*DELTA%v)
      LAM2%v = (LAMU%v**2)
      IF (DELTA2%v.LT.LAM2%v) THEN
        ALAMU%v = LAMU%v
      ELSE
        ALAMU%v = (((DELTA2%v+LAM2%v)*5.0D-01)/DELTA2%v)
      ENDIF
      ALAMCM%v = ((LAMCM%v-ALAMCM%v)*5.0D-01)
      ALAMCP%v = ((LAMCP%v-ALAMCP%v)*5.0D-01)
      ALAMU%v = ((LAMU%v-ALAMU%v)*5.0D-01)
      EL%v = (PRIML(1)%v*GM1INV%v+PRIML(2)%v*THETAL%v)
      RUL%v = (PRIML(2)%v*PRIML(3)%v)
      RVL%v = (PRIML(2)%v*PRIML(4)%v)
      RWL%v = (PRIML(2)%v*PRIML(5)%v)
      ER%v = (PRIMR(1)%v*GM1INV%v+PRIMR(2)%v*THETAR%v)
      RUR%v = (PRIMR(2)%v*PRIMR(3)%v)
      RVR%v = (PRIMR(2)%v*PRIMR(4)%v)
      RWR%v = (PRIMR(2)%v*PRIMR(5)%v)
      DE%v = (ER%v-EL%v)
      DR%v = (PRIMR(2)%v-PRIML(2)%v)
      DRU%v = (RUR%v-RUL%v)
      DRV%v = (RVR%v-RVL%v)
      DRW%v = (RWR%v-RWL%v)
      UDDRU%v = (DRU%v*UAVE%v+DRV%v*VAVE%v+DRW%v*WAVE%v)
      OMEGA%v = ((GM1%v/CAVE%v)*(DE%v+DR%v*THTAVE%v-UDDRU%v))
      NDDRU%v = (DRU%v*NXHAT%v+DRV%v*NYHAT%v+DRW%v*NZHAT%v)
      ALP1%v = ((OMEGA%v+DR%v*UHAT%v-NDDRU%v)*5.0D-01)
      ALP2%v = (DRW%v*NYHAT%v+DR%v*(CAVE%v*NXHAT%v-UTILDE%v)+OMEGA%v*(-N
     +XHAT%v)-DRV%v*NZHAT%v)
      ALP3%v = (DRU%v*NZHAT%v+DR%v*(CAVE%v*NYHAT%v-VTILDE%v)+OMEGA%v*(-N
     +YHAT%v)-DRW%v*NXHAT%v)
      ALP4%v = (DRV%v*NXHAT%v+DR%v*(CAVE%v*NZHAT%v-WTILDE%v)+OMEGA%v*(-N
     +ZHAT%v)-DRU%v*NYHAT%v)
      ALP5%v = ((NDDRU%v+OMEGA%v-DR%v*UHAT%v)*5.0D-01)
      ALP1%v = (ALAMCM%v*ALP1%v)
      ALP2%v = (ALAMU%v*ALP2%v)
      ALP3%v = (ALAMU%v*ALP3%v)
      ALP4%v = (ALAMU%v*ALP4%v)
      ALP5%v = (ALAMCP%v*ALP5%v)
      ALP15P%v = (ALP1%v+ALP5%v)
      ALP15M%v = (ALP1%v-ALP5%v)
      MU%v = ((ALP15P%v/CAVE%v)+ALP2%v*NXHAT%v+ALP3%v*NYHAT%v+ALP4%v*NZH
     +AT%v)
      DSS1%v = (MU%v*THTAVE%v+ALP15P%v*GM1INV%v*CAVE%v-ALP15M%v*UHAT%v+A
     +LP2%v*UTILDE%v+ALP3%v*VTILDE%v+ALP4%v*WTILDE%v)
      DSS2%v = MU%v
      DSS3%v = (ALP3%v*NZHAT%v+MU%v*UAVE%v-ALP15M%v*NXHAT%v-ALP4%v*NYHAT
     +%v)
      DSS4%v = (ALP4%v*NXHAT%v+MU%v*VAVE%v-ALP15M%v*NYHAT%v-ALP2%v*NZHAT
     +%v)
      DSS5%v = (ALP2%v*NYHAT%v+MU%v*WAVE%v-ALP15M%v*NZHAT%v-ALP3%v*NXHAT
     +%v)
      UHATL%v = (PRIML(3)%v*NXHAT%v+PRIML(4)%v*NYHAT%v+PRIML(5)%v*NZHAT%
     +v)
      FLUX(1)%v = (NSIZE%v*(DSS1%v+UHATL%v*(PRIML(1)%v+EL%v)))
      FLUX(2)%v = (NSIZE%v*(DSS2%v+PRIML(2)%v*UHATL%v))
      FLUX(3)%v = (NSIZE%v*(DSS3%v+PRIML(1)%v*NXHAT%v+RUL%v*UHATL%v))
      FLUX(4)%v = (NSIZE%v*(DSS4%v+PRIML(1)%v*NYHAT%v+RVL%v*UHATL%v))
      FLUX(5)%v = (NSIZE%v*(DSS5%v+PRIML(1)%v*NZHAT%v+RWL%v*UHATL%v))

C original function end
            our_rev_mode=our_orig_mode
          end if
          if (our_rev_mode%tape) then
C            print*, " tape       ", our_rev_mode
            our_rev_mode%arg_store=.TRUE.
            our_rev_mode%arg_restore=.FALSE.
            our_rev_mode%plain=.TRUE.
            our_rev_mode%tape=.FALSE.
            our_rev_mode%adjoint=.FALSE.
C taping
C$OPENAD XXX Template ad_template.f
      OpenAD_aux_0 = ((NRM(1)%v**2)+(NRM(2)%v**2)+(NRM(3)%v**2))
      OpenAD_lin_1 = (2*(NRM(1)%v**(2-INT(1_w2f__i8))))
      OpenAD_lin_2 = (2*(NRM(2)%v**(2-INT(1_w2f__i8))))
      OpenAD_lin_3 = (2*(NRM(3)%v**(2-INT(1_w2f__i8))))
      OpenAD_lin_0 = COS(OpenAD_aux_0)
      NSIZE%v = SIN(OpenAD_aux_0)
      OpenAD_acc_0 = (OpenAD_lin_3*OpenAD_lin_0)
      OpenAD_acc_1 = (OpenAD_lin_2*OpenAD_lin_0)
      OpenAD_acc_2 = (OpenAD_lin_1*OpenAD_lin_0)
      double_tape(double_tape_pointer) = OpenAD_acc_0
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_1
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_2
      double_tape_pointer = double_tape_pointer+1
      IF (MCHEPS.LT.NSIZE%v) THEN
        OpenAD_lin_4 = (-(1.0D00/(NSIZE%v*NSIZE%v)))
        NSIZEI%v = (1.0D00/NSIZE%v)
        double_tape(double_tape_pointer) = OpenAD_lin_4
        double_tape_pointer = double_tape_pointer+1
        OpenAD_Symbol_4 = 1_w2f__i8
        integer_tape(integer_tape_pointer) = OpenAD_Symbol_4
        integer_tape_pointer = integer_tape_pointer+1
      ELSE
        NSIZEI%v = 0.0D00
        OpenAD_Symbol_5 = 0_w2f__i8
        integer_tape(integer_tape_pointer) = OpenAD_Symbol_5
        integer_tape_pointer = integer_tape_pointer+1
      ENDIF
      OpenAD_lin_5 = NSIZEI%v
      OpenAD_lin_6 = NRM(1)%v
      NXHAT%v = (NRM(1)%v*NSIZEI%v)
      OpenAD_lin_7 = NSIZEI%v
      OpenAD_lin_8 = NRM(2)%v
      NYHAT%v = (NRM(2)%v*NSIZEI%v)
      OpenAD_lin_9 = NSIZEI%v
      OpenAD_lin_10 = NRM(3)%v
      NZHAT%v = (NRM(3)%v*NSIZEI%v)
      OpenAD_aux_2 = (PRIMR(2)%v/PRIML(2)%v)
      OpenAD_aux_1 = (SIN(OpenAD_aux_2)+1.0D00)
      OpenAD_lin_13 = (INT(1_w2f__i8)/PRIML(2)%v)
      OpenAD_lin_14 = (-(PRIMR(2)%v/(PRIML(2)%v*PRIML(2)%v)))
      OpenAD_lin_12 = COS(OpenAD_aux_2)
      OpenAD_lin_11 = (-(1.0D00/(OpenAD_aux_1*OpenAD_aux_1)))
      ROEL%v = (1.0D00/OpenAD_aux_1)
      ROER%v = (1.0D00-ROEL%v)
      OpenAD_aux_3 = ((PRIML(3)%v**2)+(PRIML(4)%v**2)+(PRIML(5)%v**2))
      OpenAD_lin_15 = (2*(PRIML(3)%v**(2-INT(1_w2f__i8))))
      OpenAD_lin_16 = (2*(PRIML(4)%v**(2-INT(1_w2f__i8))))
      OpenAD_lin_17 = (2*(PRIML(5)%v**(2-INT(1_w2f__i8))))
      THETAL%v = (OpenAD_aux_3*5.0D-01)
      OpenAD_aux_4 = ((PRIMR(3)%v**2)+(PRIMR(4)%v**2)+(PRIMR(5)%v**2))
      OpenAD_lin_18 = (2*(PRIMR(3)%v**(2-INT(1_w2f__i8))))
      OpenAD_lin_19 = (2*(PRIMR(4)%v**(2-INT(1_w2f__i8))))
      OpenAD_lin_20 = (2*(PRIMR(5)%v**(2-INT(1_w2f__i8))))
      THETAR%v = (OpenAD_aux_4*5.0D-01)
      OpenAD_aux_6 = (GAMMA%v*GM1INV%v)
      OpenAD_aux_5 = (PRIML(1)%v*OpenAD_aux_6)
      OpenAD_lin_23 = OpenAD_aux_6
      OpenAD_lin_25 = GM1INV%v
      OpenAD_lin_26 = GAMMA%v
      OpenAD_lin_24 = PRIML(1)%v
      OpenAD_lin_21 = (INT(1_w2f__i8)/PRIML(2)%v)
      OpenAD_lin_22 = (-(OpenAD_aux_5/(PRIML(2)%v*PRIML(2)%v)))
      HL%v = (THETAL%v+(OpenAD_aux_5/PRIML(2)%v))
      OpenAD_aux_8 = (GAMMA%v*GM1INV%v)
      OpenAD_aux_7 = (PRIMR(1)%v*OpenAD_aux_8)
      OpenAD_lin_29 = OpenAD_aux_8
      OpenAD_lin_31 = GM1INV%v
      OpenAD_lin_32 = GAMMA%v
      OpenAD_lin_30 = PRIMR(1)%v
      OpenAD_lin_27 = (INT(1_w2f__i8)/PRIMR(2)%v)
      OpenAD_lin_28 = (-(OpenAD_aux_7/(PRIMR(2)%v*PRIMR(2)%v)))
      HR%v = (THETAR%v+(OpenAD_aux_7/PRIMR(2)%v))
      OpenAD_lin_33 = ROEL%v
      OpenAD_lin_34 = PRIML(3)%v
      OpenAD_lin_35 = ROER%v
      OpenAD_lin_36 = PRIMR(3)%v
      UAVE%v = (PRIML(3)%v*ROEL%v+PRIMR(3)%v*ROER%v)
      OpenAD_lin_37 = ROEL%v
      OpenAD_lin_38 = PRIML(4)%v
      OpenAD_lin_39 = ROER%v
      OpenAD_lin_40 = PRIMR(4)%v
      VAVE%v = (PRIML(4)%v*ROEL%v+PRIMR(4)%v*ROER%v)
      OpenAD_lin_41 = ROEL%v
      OpenAD_lin_42 = PRIML(5)%v
      OpenAD_lin_43 = ROER%v
      OpenAD_lin_44 = PRIMR(5)%v
      WAVE%v = (PRIML(5)%v*ROEL%v+PRIMR(5)%v*ROER%v)
      OpenAD_lin_45 = ROEL%v
      OpenAD_lin_46 = HL%v
      OpenAD_lin_47 = ROER%v
      OpenAD_lin_48 = HR%v
      HAVE%v = (HL%v*ROEL%v+HR%v*ROER%v)
      OpenAD_aux_9 = ((UAVE%v**2)+(VAVE%v**2)+(WAVE%v**2))
      OpenAD_lin_49 = (2*(UAVE%v**(2-INT(1_w2f__i8))))
      OpenAD_lin_50 = (2*(VAVE%v**(2-INT(1_w2f__i8))))
      OpenAD_lin_51 = (2*(WAVE%v**(2-INT(1_w2f__i8))))
      THTAVE%v = (OpenAD_aux_9*5.0D-01)
      OpenAD_aux_10 = (HAVE%v-THTAVE%v)
      OpenAD_lin_52 = OpenAD_aux_10
      OpenAD_lin_53 = GM1%v
      CAVE%v = (GM1%v*OpenAD_aux_10)
      OpenAD_acc_3 = (OpenAD_lin_30*OpenAD_lin_27)
      OpenAD_acc_4 = (OpenAD_lin_24*OpenAD_lin_21)
      OpenAD_acc_5 = (5.0D-01*INT((-1_w2f__i8))*OpenAD_lin_53)
      OpenAD_acc_6 = (OpenAD_lin_47*OpenAD_lin_53)
      OpenAD_acc_7 = (OpenAD_lin_45*OpenAD_lin_53)
      OpenAD_acc_8 = (OpenAD_lin_11*(OpenAD_lin_46*OpenAD_lin_53+INT((-1
     +_w2f__i8))*OpenAD_lin_48*OpenAD_lin_53))
      OpenAD_acc_9 = (OpenAD_lin_11*(OpenAD_lin_42+INT((-1_w2f__i8))*Ope
     +nAD_lin_44))
      OpenAD_acc_10 = (OpenAD_lin_11*(OpenAD_lin_38+INT((-1_w2f__i8))*Op
     +enAD_lin_40))
      OpenAD_acc_11 = (OpenAD_lin_11*(OpenAD_lin_34+INT((-1_w2f__i8))*Op
     +enAD_lin_36))
      OpenAD_acc_12 = (OpenAD_lin_13*OpenAD_lin_12)
      OpenAD_acc_13 = (OpenAD_lin_14*OpenAD_lin_12)
      OpenAD_acc_14 = (OpenAD_lin_23*OpenAD_lin_21)
      OpenAD_acc_15 = (OpenAD_lin_25*OpenAD_acc_4)
      OpenAD_acc_16 = (OpenAD_lin_26*OpenAD_acc_4)
      OpenAD_acc_17 = (OpenAD_lin_29*OpenAD_lin_27)
      OpenAD_acc_18 = (OpenAD_lin_31*OpenAD_acc_3)
      OpenAD_acc_19 = (OpenAD_lin_32*OpenAD_acc_3)
      double_tape(double_tape_pointer) = OpenAD_lin_5
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_6
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_7
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_8
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_9
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_10
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_12
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_13
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_17
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_15
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_16
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_20
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_18
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_19
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_22
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_14
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_15
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_16
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_28
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_17
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_18
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_19
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_35
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_11
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_33
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_39
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_37
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_10
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_43
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_41
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_9
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_51
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_50
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_49
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_52
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_5
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_6
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_7
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_8
      double_tape_pointer = double_tape_pointer+1
      OpenAD_lin_54 = COS(CAVE%v)
      CAVE%v = SIN(CAVE%v)
      OpenAD_lin_55 = UAVE%v
      OpenAD_lin_56 = NXHAT%v
      OpenAD_lin_57 = VAVE%v
      OpenAD_lin_58 = NYHAT%v
      OpenAD_lin_59 = WAVE%v
      OpenAD_lin_60 = NZHAT%v
      UHAT%v = (NXHAT%v*UAVE%v+NYHAT%v*VAVE%v+NZHAT%v*WAVE%v)
      OpenAD_lin_61 = WAVE%v
      OpenAD_lin_62 = NYHAT%v
      OpenAD_lin_63 = VAVE%v
      OpenAD_lin_64 = NZHAT%v
      UTILDE%v = (NYHAT%v*WAVE%v-NZHAT%v*VAVE%v)
      OpenAD_lin_65 = UAVE%v
      OpenAD_lin_66 = NZHAT%v
      OpenAD_lin_67 = WAVE%v
      OpenAD_lin_68 = NXHAT%v
      VTILDE%v = (NZHAT%v*UAVE%v-NXHAT%v*WAVE%v)
      OpenAD_lin_69 = VAVE%v
      OpenAD_lin_70 = NXHAT%v
      OpenAD_lin_71 = UAVE%v
      OpenAD_lin_72 = NYHAT%v
      WTILDE%v = (NXHAT%v*VAVE%v-NYHAT%v*UAVE%v)
      LAMCM%v = (UHAT%v-CAVE%v)
      LAMU%v = UHAT%v
      LAMCP%v = (CAVE%v+UHAT%v)
      OpenAD_aux_11 = (CAVE%v+UHAT%v)
      OpenAD_lin_73 = OpenAD_aux_11
      OpenAD_lin_74 = NLEFIX%v
      DELTA%v = (NLEFIX%v*OpenAD_aux_11)
      OpenAD_lin_75 = (2*(DELTA%v**(2-INT(1_w2f__i8))))
      DELTA2%v = (DELTA%v**2)
      OpenAD_lin_76 = (2*(LAMCM%v**(2-INT(1_w2f__i8))))
      LAM2%v = (LAMCM%v**2)
      OpenAD_acc_20 = (OpenAD_lin_73*OpenAD_lin_75)
      OpenAD_acc_21 = (OpenAD_lin_74*OpenAD_lin_75)
      OpenAD_acc_22 = (OpenAD_lin_63*INT((-1_w2f__i8)))
      OpenAD_acc_23 = (OpenAD_lin_64*INT((-1_w2f__i8)))
      OpenAD_acc_24 = (OpenAD_lin_67*INT((-1_w2f__i8)))
      OpenAD_acc_25 = (OpenAD_lin_68*INT((-1_w2f__i8)))
      OpenAD_acc_26 = (OpenAD_lin_71*INT((-1_w2f__i8)))
      OpenAD_acc_27 = (OpenAD_lin_72*INT((-1_w2f__i8)))
      double_tape(double_tape_pointer) = OpenAD_lin_54
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_61
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_62
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_22
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_23
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_65
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_66
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_24
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_25
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_69
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_70
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_26
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_27
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_55
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_56
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_57
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_58
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_59
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_60
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_76
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_20
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_21
      double_tape_pointer = double_tape_pointer+1
      IF (DELTA2%v.LT.LAM2%v) THEN
        ALAMCM%v = LAMCM%v
        OpenAD_Symbol_6 = 1_w2f__i8
        integer_tape(integer_tape_pointer) = OpenAD_Symbol_6
        integer_tape_pointer = integer_tape_pointer+1
      ELSE
        OpenAD_aux_38 = (DELTA2%v+LAM2%v)
        OpenAD_aux_37 = (OpenAD_aux_38*5.0D-01)
        OpenAD_lin_247 = (INT(1_w2f__i8)/DELTA2%v)
        OpenAD_lin_248 = (-(OpenAD_aux_37/(DELTA2%v*DELTA2%v)))
        ALAMCM%v = (OpenAD_aux_37/DELTA2%v)
        OpenAD_acc_80 = (5.0D-01*OpenAD_lin_247)
        double_tape(double_tape_pointer) = OpenAD_lin_248
        double_tape_pointer = double_tape_pointer+1
        double_tape(double_tape_pointer) = OpenAD_acc_80
        double_tape_pointer = double_tape_pointer+1
        OpenAD_Symbol_7 = 0_w2f__i8
        integer_tape(integer_tape_pointer) = OpenAD_Symbol_7
        integer_tape_pointer = integer_tape_pointer+1
      ENDIF
      OpenAD_lin_77 = (2*(LAMCP%v**(2-INT(1_w2f__i8))))
      LAM2%v = (LAMCP%v**2)
      double_tape(double_tape_pointer) = OpenAD_lin_77
      double_tape_pointer = double_tape_pointer+1
      IF (DELTA2%v.LT.LAM2%v) THEN
        ALAMCP%v = LAMCP%v
        OpenAD_Symbol_8 = 1_w2f__i8
        integer_tape(integer_tape_pointer) = OpenAD_Symbol_8
        integer_tape_pointer = integer_tape_pointer+1
      ELSE
        OpenAD_aux_36 = (DELTA2%v+LAM2%v)
        OpenAD_aux_35 = (OpenAD_aux_36*5.0D-01)
        OpenAD_lin_245 = (INT(1_w2f__i8)/DELTA2%v)
        OpenAD_lin_246 = (-(OpenAD_aux_35/(DELTA2%v*DELTA2%v)))
        ALAMCP%v = (OpenAD_aux_35/DELTA2%v)
        OpenAD_acc_79 = (5.0D-01*OpenAD_lin_245)
        double_tape(double_tape_pointer) = OpenAD_lin_246
        double_tape_pointer = double_tape_pointer+1
        double_tape(double_tape_pointer) = OpenAD_acc_79
        double_tape_pointer = double_tape_pointer+1
        OpenAD_Symbol_9 = 0_w2f__i8
        integer_tape(integer_tape_pointer) = OpenAD_Symbol_9
        integer_tape_pointer = integer_tape_pointer+1
      ENDIF
      OpenAD_aux_12 = (CAVE%v+UHAT%v)
      OpenAD_lin_78 = OpenAD_aux_12
      OpenAD_lin_79 = LEFIX%v
      DELTA%v = (LEFIX%v*OpenAD_aux_12)
      OpenAD_lin_80 = DELTA%v
      OpenAD_lin_81 = DELTA%v
      DELTA2%v = (DELTA%v*DELTA%v)
      OpenAD_lin_82 = (2*(LAMU%v**(2-INT(1_w2f__i8))))
      LAM2%v = (LAMU%v**2)
      OpenAD_acc_28 = (OpenAD_lin_80+OpenAD_lin_81)
      OpenAD_acc_29 = (OpenAD_lin_78*OpenAD_acc_28)
      OpenAD_acc_30 = (OpenAD_lin_79*OpenAD_acc_28)
      double_tape(double_tape_pointer) = OpenAD_lin_82
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_29
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_30
      double_tape_pointer = double_tape_pointer+1
      IF (DELTA2%v.LT.LAM2%v) THEN
        ALAMU%v = LAMU%v
        OpenAD_Symbol_10 = 1_w2f__i8
        integer_tape(integer_tape_pointer) = OpenAD_Symbol_10
        integer_tape_pointer = integer_tape_pointer+1
      ELSE
        OpenAD_aux_34 = (DELTA2%v+LAM2%v)
        OpenAD_aux_33 = (OpenAD_aux_34*5.0D-01)
        OpenAD_lin_243 = (INT(1_w2f__i8)/DELTA2%v)
        OpenAD_lin_244 = (-(OpenAD_aux_33/(DELTA2%v*DELTA2%v)))
        ALAMU%v = (OpenAD_aux_33/DELTA2%v)
        OpenAD_acc_78 = (5.0D-01*OpenAD_lin_243)
        double_tape(double_tape_pointer) = OpenAD_lin_244
        double_tape_pointer = double_tape_pointer+1
        double_tape(double_tape_pointer) = OpenAD_acc_78
        double_tape_pointer = double_tape_pointer+1
        OpenAD_Symbol_11 = 0_w2f__i8
        integer_tape(integer_tape_pointer) = OpenAD_Symbol_11
        integer_tape_pointer = integer_tape_pointer+1
      ENDIF
      OpenAD_aux_13 = (LAMCM%v-ALAMCM%v)
      ALAMCM%v = (OpenAD_aux_13*5.0D-01)
      OpenAD_aux_14 = (LAMCP%v-ALAMCP%v)
      ALAMCP%v = (OpenAD_aux_14*5.0D-01)
      OpenAD_aux_15 = (LAMU%v-ALAMU%v)
      ALAMU%v = (OpenAD_aux_15*5.0D-01)
      OpenAD_lin_83 = GM1INV%v
      OpenAD_lin_84 = PRIML(1)%v
      OpenAD_lin_85 = THETAL%v
      OpenAD_lin_86 = PRIML(2)%v
      EL%v = (PRIML(1)%v*GM1INV%v+PRIML(2)%v*THETAL%v)
      OpenAD_lin_87 = PRIML(3)%v
      OpenAD_lin_88 = PRIML(2)%v
      RUL%v = (PRIML(2)%v*PRIML(3)%v)
      OpenAD_lin_89 = PRIML(4)%v
      OpenAD_lin_90 = PRIML(2)%v
      RVL%v = (PRIML(2)%v*PRIML(4)%v)
      OpenAD_lin_91 = PRIML(5)%v
      OpenAD_lin_92 = PRIML(2)%v
      RWL%v = (PRIML(2)%v*PRIML(5)%v)
      OpenAD_lin_93 = GM1INV%v
      OpenAD_lin_94 = PRIMR(1)%v
      OpenAD_lin_95 = THETAR%v
      OpenAD_lin_96 = PRIMR(2)%v
      ER%v = (PRIMR(1)%v*GM1INV%v+PRIMR(2)%v*THETAR%v)
      OpenAD_lin_97 = PRIMR(3)%v
      OpenAD_lin_98 = PRIMR(2)%v
      RUR%v = (PRIMR(2)%v*PRIMR(3)%v)
      OpenAD_lin_99 = PRIMR(4)%v
      OpenAD_lin_100 = PRIMR(2)%v
      RVR%v = (PRIMR(2)%v*PRIMR(4)%v)
      OpenAD_lin_101 = PRIMR(5)%v
      OpenAD_lin_102 = PRIMR(2)%v
      RWR%v = (PRIMR(2)%v*PRIMR(5)%v)
      DE%v = (ER%v-EL%v)
      DR%v = (PRIMR(2)%v-PRIML(2)%v)
      DRU%v = (RUR%v-RUL%v)
      DRV%v = (RVR%v-RVL%v)
      DRW%v = (RWR%v-RWL%v)
      OpenAD_lin_103 = UAVE%v
      OpenAD_lin_104 = DRU%v
      OpenAD_lin_105 = VAVE%v
      OpenAD_lin_106 = DRV%v
      OpenAD_lin_107 = WAVE%v
      OpenAD_lin_108 = DRW%v
      UDDRU%v = (DRU%v*UAVE%v+DRV%v*VAVE%v+DRW%v*WAVE%v)
      OpenAD_aux_16 = (GM1%v/CAVE%v)
      OpenAD_aux_17 = (DE%v+DR%v*THTAVE%v-UDDRU%v)
      OpenAD_lin_111 = (INT(1_w2f__i8)/CAVE%v)
      OpenAD_lin_112 = (-(GM1%v/(CAVE%v*CAVE%v)))
      OpenAD_lin_109 = OpenAD_aux_17
      OpenAD_lin_113 = THTAVE%v
      OpenAD_lin_114 = DR%v
      OpenAD_lin_110 = OpenAD_aux_16
      OMEGA%v = (OpenAD_aux_16*OpenAD_aux_17)
      OpenAD_lin_115 = NXHAT%v
      OpenAD_lin_116 = DRU%v
      OpenAD_lin_117 = NYHAT%v
      OpenAD_lin_118 = DRV%v
      OpenAD_lin_119 = NZHAT%v
      OpenAD_lin_120 = DRW%v
      NDDRU%v = (DRU%v*NXHAT%v+DRV%v*NYHAT%v+DRW%v*NZHAT%v)
      OpenAD_aux_18 = (OMEGA%v+DR%v*UHAT%v-NDDRU%v)
      OpenAD_lin_121 = UHAT%v
      OpenAD_lin_122 = DR%v
      ALP1%v = (OpenAD_aux_18*5.0D-01)
      OpenAD_aux_19 = (CAVE%v*NXHAT%v-UTILDE%v)
      OpenAD_aux_20 = (-NXHAT%v)
      OpenAD_lin_123 = NYHAT%v
      OpenAD_lin_124 = DRW%v
      OpenAD_lin_125 = OpenAD_aux_19
      OpenAD_lin_127 = NXHAT%v
      OpenAD_lin_128 = CAVE%v
      OpenAD_lin_126 = DR%v
      OpenAD_lin_129 = OpenAD_aux_20
      OpenAD_lin_130 = OMEGA%v
      OpenAD_lin_131 = NZHAT%v
      OpenAD_lin_132 = DRV%v
      ALP2%v = (DRW%v*NYHAT%v+DR%v*OpenAD_aux_19+OMEGA%v*OpenAD_aux_20-D
     +RV%v*NZHAT%v)
      OpenAD_aux_21 = (CAVE%v*NYHAT%v-VTILDE%v)
      OpenAD_aux_22 = (-NYHAT%v)
      OpenAD_lin_133 = NZHAT%v
      OpenAD_lin_134 = DRU%v
      OpenAD_lin_135 = OpenAD_aux_21
      OpenAD_lin_137 = NYHAT%v
      OpenAD_lin_138 = CAVE%v
      OpenAD_lin_136 = DR%v
      OpenAD_lin_139 = OpenAD_aux_22
      OpenAD_lin_140 = OMEGA%v
      OpenAD_lin_141 = NXHAT%v
      OpenAD_lin_142 = DRW%v
      ALP3%v = (DRU%v*NZHAT%v+DR%v*OpenAD_aux_21+OMEGA%v*OpenAD_aux_22-D
     +RW%v*NXHAT%v)
      OpenAD_aux_23 = (CAVE%v*NZHAT%v-WTILDE%v)
      OpenAD_aux_24 = (-NZHAT%v)
      OpenAD_lin_143 = NXHAT%v
      OpenAD_lin_144 = DRV%v
      OpenAD_lin_145 = OpenAD_aux_23
      OpenAD_lin_147 = NZHAT%v
      OpenAD_lin_148 = CAVE%v
      OpenAD_lin_146 = DR%v
      OpenAD_lin_149 = OpenAD_aux_24
      OpenAD_lin_150 = OMEGA%v
      OpenAD_lin_151 = NYHAT%v
      OpenAD_lin_152 = DRU%v
      ALP4%v = (DRV%v*NXHAT%v+DR%v*OpenAD_aux_23+OMEGA%v*OpenAD_aux_24-D
     +RU%v*NYHAT%v)
      OpenAD_aux_25 = (NDDRU%v+OMEGA%v-DR%v*UHAT%v)
      OpenAD_lin_153 = UHAT%v
      OpenAD_lin_154 = DR%v
      ALP5%v = (OpenAD_aux_25*5.0D-01)
      OpenAD_acc_31 = (OpenAD_lin_111*OpenAD_lin_109)
      OpenAD_acc_32 = (OpenAD_lin_112*OpenAD_lin_109)
      OpenAD_acc_33 = (OpenAD_lin_103*INT((-1_w2f__i8)))
      OpenAD_acc_34 = (OpenAD_lin_104*INT((-1_w2f__i8)))
      OpenAD_acc_35 = (OpenAD_lin_105*INT((-1_w2f__i8)))
      OpenAD_acc_36 = (OpenAD_lin_106*INT((-1_w2f__i8)))
      OpenAD_acc_37 = (OpenAD_lin_107*INT((-1_w2f__i8)))
      OpenAD_acc_38 = (OpenAD_lin_108*INT((-1_w2f__i8)))
      OpenAD_acc_39 = (INT((-1_w2f__i8))*OpenAD_lin_130)
      OpenAD_acc_40 = (OpenAD_lin_131*INT((-1_w2f__i8)))
      OpenAD_acc_41 = (OpenAD_lin_132*INT((-1_w2f__i8)))
      OpenAD_acc_42 = (INT((-1_w2f__i8))*OpenAD_lin_140)
      OpenAD_acc_43 = (OpenAD_lin_141*INT((-1_w2f__i8)))
      OpenAD_acc_44 = (OpenAD_lin_142*INT((-1_w2f__i8)))
      OpenAD_acc_45 = (INT((-1_w2f__i8))*OpenAD_lin_150)
      OpenAD_acc_46 = (OpenAD_lin_151*INT((-1_w2f__i8)))
      OpenAD_acc_47 = (OpenAD_lin_152*INT((-1_w2f__i8)))
      OpenAD_acc_48 = (OpenAD_lin_153*INT((-1_w2f__i8)))
      OpenAD_acc_49 = (OpenAD_lin_154*INT((-1_w2f__i8)))
      double_tape(double_tape_pointer) = OpenAD_lin_87
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_88
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_89
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_90
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_91
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_92
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_97
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_98
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_99
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_100
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_101
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_102
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_83
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_84
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_85
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_86
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_127
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_128
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_137
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_138
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_147
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_148
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_93
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_94
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_95
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_96
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_113
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_114
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_33
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_34
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_35
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_36
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_37
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_38
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_115
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_116
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_117
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_118
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_119
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_120
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_110
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_31
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_32
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_121
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_122
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_48
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_49
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_123
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_124
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_125
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_126
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_129
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_39
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_40
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_41
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_133
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_134
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_135
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_136
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_139
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_42
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_43
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_44
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_143
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_144
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_145
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_146
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_149
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_45
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_46
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_47
      double_tape_pointer = double_tape_pointer+1
      OpenAD_lin_155 = ALP1%v
      OpenAD_lin_156 = ALAMCM%v
      ALP1%v = (ALAMCM%v*ALP1%v)
      OpenAD_lin_157 = ALP2%v
      OpenAD_lin_158 = ALAMU%v
      ALP2%v = (ALAMU%v*ALP2%v)
      OpenAD_lin_159 = ALP3%v
      OpenAD_lin_160 = ALAMU%v
      ALP3%v = (ALAMU%v*ALP3%v)
      OpenAD_lin_161 = ALP4%v
      OpenAD_lin_162 = ALAMU%v
      ALP4%v = (ALAMU%v*ALP4%v)
      OpenAD_lin_163 = ALP5%v
      OpenAD_lin_164 = ALAMCP%v
      ALP5%v = (ALAMCP%v*ALP5%v)
      ALP15P%v = (ALP1%v+ALP5%v)
      ALP15M%v = (ALP1%v-ALP5%v)
      OpenAD_lin_165 = (INT(1_w2f__i8)/CAVE%v)
      OpenAD_lin_166 = (-(ALP15P%v/(CAVE%v*CAVE%v)))
      OpenAD_lin_167 = NXHAT%v
      OpenAD_lin_168 = ALP2%v
      OpenAD_lin_169 = NYHAT%v
      OpenAD_lin_170 = ALP3%v
      OpenAD_lin_171 = NZHAT%v
      OpenAD_lin_172 = ALP4%v
      MU%v = ((ALP15P%v/CAVE%v)+ALP2%v*NXHAT%v+ALP3%v*NYHAT%v+ALP4%v*NZH
     +AT%v)
      OpenAD_aux_26 = (GM1INV%v*CAVE%v)
      OpenAD_lin_173 = THTAVE%v
      OpenAD_lin_174 = MU%v
      OpenAD_lin_175 = OpenAD_aux_26
      OpenAD_lin_177 = CAVE%v
      OpenAD_lin_178 = GM1INV%v
      OpenAD_lin_176 = ALP15P%v
      OpenAD_lin_179 = UHAT%v
      OpenAD_lin_180 = ALP15M%v
      OpenAD_lin_181 = UTILDE%v
      OpenAD_lin_182 = ALP2%v
      OpenAD_lin_183 = VTILDE%v
      OpenAD_lin_184 = ALP3%v
      OpenAD_lin_185 = WTILDE%v
      OpenAD_lin_186 = ALP4%v
      DSS1%v = (MU%v*THTAVE%v+ALP15P%v*OpenAD_aux_26-ALP15M%v*UHAT%v+ALP
     +2%v*UTILDE%v+ALP3%v*VTILDE%v+ALP4%v*WTILDE%v)
      DSS2%v = MU%v
      OpenAD_lin_187 = NZHAT%v
      OpenAD_lin_188 = ALP3%v
      OpenAD_lin_189 = UAVE%v
      OpenAD_lin_190 = MU%v
      OpenAD_lin_191 = NXHAT%v
      OpenAD_lin_192 = ALP15M%v
      OpenAD_lin_193 = NYHAT%v
      OpenAD_lin_194 = ALP4%v
      DSS3%v = (ALP3%v*NZHAT%v+MU%v*UAVE%v-ALP15M%v*NXHAT%v-ALP4%v*NYHAT
     +%v)
      OpenAD_lin_195 = NXHAT%v
      OpenAD_lin_196 = ALP4%v
      OpenAD_lin_197 = VAVE%v
      OpenAD_lin_198 = MU%v
      OpenAD_lin_199 = NYHAT%v
      OpenAD_lin_200 = ALP15M%v
      OpenAD_lin_201 = NZHAT%v
      OpenAD_lin_202 = ALP2%v
      DSS4%v = (ALP4%v*NXHAT%v+MU%v*VAVE%v-ALP15M%v*NYHAT%v-ALP2%v*NZHAT
     +%v)
      OpenAD_lin_203 = NYHAT%v
      OpenAD_lin_204 = ALP2%v
      OpenAD_lin_205 = WAVE%v
      OpenAD_lin_206 = MU%v
      OpenAD_lin_207 = NZHAT%v
      OpenAD_lin_208 = ALP15M%v
      OpenAD_lin_209 = NXHAT%v
      OpenAD_lin_210 = ALP3%v
      DSS5%v = (ALP2%v*NYHAT%v+MU%v*WAVE%v-ALP15M%v*NZHAT%v-ALP3%v*NXHAT
     +%v)
      OpenAD_lin_211 = NXHAT%v
      OpenAD_lin_212 = PRIML(3)%v
      OpenAD_lin_213 = NYHAT%v
      OpenAD_lin_214 = PRIML(4)%v
      OpenAD_lin_215 = NZHAT%v
      OpenAD_lin_216 = PRIML(5)%v
      UHATL%v = (PRIML(3)%v*NXHAT%v+PRIML(4)%v*NYHAT%v+PRIML(5)%v*NZHAT%
     +v)
      OpenAD_aux_28 = (PRIML(1)%v+EL%v)
      OpenAD_aux_27 = (DSS1%v+UHATL%v*OpenAD_aux_28)
      OpenAD_lin_217 = OpenAD_aux_27
      OpenAD_lin_219 = OpenAD_aux_28
      OpenAD_lin_220 = UHATL%v
      OpenAD_lin_218 = NSIZE%v
      FLUX(1)%v = (NSIZE%v*OpenAD_aux_27)
      OpenAD_acc_50 = (OpenAD_lin_219*OpenAD_lin_218)
      OpenAD_acc_51 = (OpenAD_lin_220*OpenAD_lin_218)
      OpenAD_acc_52 = (OpenAD_lin_185*OpenAD_lin_218)
      OpenAD_acc_53 = (OpenAD_lin_186*OpenAD_lin_218)
      OpenAD_acc_54 = (OpenAD_lin_183*OpenAD_lin_218)
      OpenAD_acc_55 = (OpenAD_lin_184*OpenAD_lin_218)
      OpenAD_acc_56 = (OpenAD_lin_181*OpenAD_lin_218)
      OpenAD_acc_57 = (OpenAD_lin_182*OpenAD_lin_218)
      OpenAD_acc_58 = (OpenAD_lin_173*OpenAD_lin_218)
      OpenAD_acc_59 = (OpenAD_lin_174*OpenAD_lin_218)
      OpenAD_acc_60 = (OpenAD_lin_175*OpenAD_lin_218)
      OpenAD_acc_61 = (OpenAD_lin_177*OpenAD_lin_176*OpenAD_lin_218)
      OpenAD_acc_62 = (OpenAD_lin_178*OpenAD_lin_176*OpenAD_lin_218)
      OpenAD_acc_63 = (INT((-1_w2f__i8))*OpenAD_lin_218)
      OpenAD_acc_64 = (OpenAD_lin_179*OpenAD_acc_63)
      OpenAD_acc_65 = (OpenAD_lin_180*OpenAD_acc_63)
      OpenAD_acc_66 = (OpenAD_lin_193*INT((-1_w2f__i8)))
      OpenAD_acc_67 = (OpenAD_lin_194*INT((-1_w2f__i8)))
      OpenAD_acc_68 = (OpenAD_lin_201*INT((-1_w2f__i8)))
      OpenAD_acc_69 = (OpenAD_lin_202*INT((-1_w2f__i8)))
      OpenAD_acc_70 = (OpenAD_lin_209*INT((-1_w2f__i8)))
      OpenAD_acc_71 = (OpenAD_lin_210*INT((-1_w2f__i8)))
      OpenAD_acc_72 = (OpenAD_lin_207*INT((-1_w2f__i8)))
      OpenAD_acc_73 = (OpenAD_lin_208*INT((-1_w2f__i8)))
      OpenAD_acc_74 = (OpenAD_lin_199*INT((-1_w2f__i8)))
      OpenAD_acc_75 = (OpenAD_lin_200*INT((-1_w2f__i8)))
      OpenAD_acc_76 = (OpenAD_lin_191*INT((-1_w2f__i8)))
      OpenAD_acc_77 = (OpenAD_lin_192*INT((-1_w2f__i8)))
      double_tape(double_tape_pointer) = OpenAD_lin_155
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_156
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_157
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_158
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_159
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_160
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_161
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_162
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_163
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_164
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_211
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_212
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_213
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_214
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_215
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_216
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_165
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_166
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_167
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_168
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_169
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_170
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_171
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_172
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_189
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_190
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_66
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_67
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_187
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_188
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_76
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_77
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_197
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_198
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_68
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_69
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_195
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_196
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_74
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_75
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_205
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_206
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_70
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_71
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_203
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_204
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_72
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_73
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_217
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_50
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_51
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_52
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_53
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_54
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_55
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_56
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_57
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_58
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_59
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_60
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_61
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_62
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_64
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_acc_65
      double_tape_pointer = double_tape_pointer+1
      OpenAD_aux_29 = (DSS2%v+PRIML(2)%v*UHATL%v)
      OpenAD_lin_221 = OpenAD_aux_29
      OpenAD_lin_223 = UHATL%v
      OpenAD_lin_224 = PRIML(2)%v
      OpenAD_lin_222 = NSIZE%v
      FLUX(2)%v = (NSIZE%v*OpenAD_aux_29)
      double_tape(double_tape_pointer) = OpenAD_lin_223
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_224
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_221
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_222
      double_tape_pointer = double_tape_pointer+1
      OpenAD_aux_30 = (DSS3%v+PRIML(1)%v*NXHAT%v+RUL%v*UHATL%v)
      OpenAD_lin_225 = OpenAD_aux_30
      OpenAD_lin_227 = NXHAT%v
      OpenAD_lin_228 = PRIML(1)%v
      OpenAD_lin_229 = UHATL%v
      OpenAD_lin_230 = RUL%v
      OpenAD_lin_226 = NSIZE%v
      FLUX(3)%v = (NSIZE%v*OpenAD_aux_30)
      double_tape(double_tape_pointer) = OpenAD_lin_227
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_228
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_229
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_230
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_225
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_226
      double_tape_pointer = double_tape_pointer+1
      OpenAD_aux_31 = (DSS4%v+PRIML(1)%v*NYHAT%v+RVL%v*UHATL%v)
      OpenAD_lin_231 = OpenAD_aux_31
      OpenAD_lin_233 = NYHAT%v
      OpenAD_lin_234 = PRIML(1)%v
      OpenAD_lin_235 = UHATL%v
      OpenAD_lin_236 = RVL%v
      OpenAD_lin_232 = NSIZE%v
      FLUX(4)%v = (NSIZE%v*OpenAD_aux_31)
      double_tape(double_tape_pointer) = OpenAD_lin_233
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_234
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_235
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_236
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_231
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_232
      double_tape_pointer = double_tape_pointer+1
      OpenAD_aux_32 = (DSS5%v+PRIML(1)%v*NZHAT%v+RWL%v*UHATL%v)
      OpenAD_lin_237 = OpenAD_aux_32
      OpenAD_lin_239 = NZHAT%v
      OpenAD_lin_240 = PRIML(1)%v
      OpenAD_lin_241 = UHATL%v
      OpenAD_lin_242 = RWL%v
      OpenAD_lin_238 = NSIZE%v
      FLUX(5)%v = (NSIZE%v*OpenAD_aux_32)
      double_tape(double_tape_pointer) = OpenAD_lin_239
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_240
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_241
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_242
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_237
      double_tape_pointer = double_tape_pointer+1
      double_tape(double_tape_pointer) = OpenAD_lin_238
      double_tape_pointer = double_tape_pointer+1

C taping end
            our_rev_mode%arg_store=.FALSE.
            our_rev_mode%arg_restore=.FALSE.
            our_rev_mode%plain=.FALSE.
            our_rev_mode%tape=.FALSE.
            our_rev_mode%adjoint=.TRUE.
          end if
          if (our_rev_mode%adjoint) then
C            print*, " adjoint    ", our_rev_mode
            our_rev_mode%arg_store=.FALSE.
            our_rev_mode%arg_restore=.TRUE.
            our_rev_mode%plain=.FALSE.
            our_rev_mode%tape=.TRUE.
            our_rev_mode%adjoint=.FALSE.
C adjoint
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_93 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_94 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_95 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_96 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_97 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_98 = double_tape(double_tape_pointer)
      OpenAD_prp_28%d = OpenAD_prp_28%d+FLUX(5)%d*(OpenAD_Symbol_93)
      NSIZE%d = NSIZE%d+FLUX(5)%d*(OpenAD_Symbol_94)
      FLUX(5)%d = 0.0d0
      UHATL%d = UHATL%d+OpenAD_prp_28%d*(OpenAD_Symbol_95)
      RWL%d = RWL%d+OpenAD_prp_28%d*(OpenAD_Symbol_96)
      NZHAT%d = NZHAT%d+OpenAD_prp_28%d*(OpenAD_Symbol_97)
      PRIML(1)%d = PRIML(1)%d+OpenAD_prp_28%d*(OpenAD_Symbol_98)
      DSS5%d = DSS5%d+OpenAD_prp_28%d
      OpenAD_prp_28%d = 0.0d0
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_99 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_100 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_101 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_102 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_103 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_104 = double_tape(double_tape_pointer)
      OpenAD_prp_27%d = OpenAD_prp_27%d+FLUX(4)%d*(OpenAD_Symbol_99)
      NSIZE%d = NSIZE%d+FLUX(4)%d*(OpenAD_Symbol_100)
      FLUX(4)%d = 0.0d0
      UHATL%d = UHATL%d+OpenAD_prp_27%d*(OpenAD_Symbol_101)
      RVL%d = RVL%d+OpenAD_prp_27%d*(OpenAD_Symbol_102)
      NYHAT%d = NYHAT%d+OpenAD_prp_27%d*(OpenAD_Symbol_103)
      PRIML(1)%d = PRIML(1)%d+OpenAD_prp_27%d*(OpenAD_Symbol_104)
      DSS4%d = DSS4%d+OpenAD_prp_27%d
      OpenAD_prp_27%d = 0.0d0
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_105 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_106 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_107 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_108 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_109 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_110 = double_tape(double_tape_pointer)
      OpenAD_prp_26%d = OpenAD_prp_26%d+FLUX(3)%d*(OpenAD_Symbol_105)
      NSIZE%d = NSIZE%d+FLUX(3)%d*(OpenAD_Symbol_106)
      FLUX(3)%d = 0.0d0
      UHATL%d = UHATL%d+OpenAD_prp_26%d*(OpenAD_Symbol_107)
      RUL%d = RUL%d+OpenAD_prp_26%d*(OpenAD_Symbol_108)
      NXHAT%d = NXHAT%d+OpenAD_prp_26%d*(OpenAD_Symbol_109)
      PRIML(1)%d = PRIML(1)%d+OpenAD_prp_26%d*(OpenAD_Symbol_110)
      DSS3%d = DSS3%d+OpenAD_prp_26%d
      OpenAD_prp_26%d = 0.0d0
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_111 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_112 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_113 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_114 = double_tape(double_tape_pointer)
      OpenAD_prp_25%d = OpenAD_prp_25%d+FLUX(2)%d*(OpenAD_Symbol_111)
      NSIZE%d = NSIZE%d+FLUX(2)%d*(OpenAD_Symbol_112)
      FLUX(2)%d = 0.0d0
      UHATL%d = UHATL%d+OpenAD_prp_25%d*(OpenAD_Symbol_113)
      PRIML(2)%d = PRIML(2)%d+OpenAD_prp_25%d*(OpenAD_Symbol_114)
      DSS2%d = DSS2%d+OpenAD_prp_25%d
      OpenAD_prp_25%d = 0.0d0
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_115 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_116 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_117 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_118 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_119 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_120 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_121 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_122 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_123 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_124 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_125 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_126 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_127 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_128 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_129 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_130 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_131 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_132 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_133 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_134 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_135 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_136 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_137 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_138 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_139 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_140 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_141 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_142 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_143 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_144 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_145 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_146 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_147 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_148 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_149 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_150 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_151 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_152 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_153 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_154 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_155 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_156 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_157 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_158 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_159 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_160 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_161 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_162 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_163 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_164 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_165 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_166 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_167 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_168 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_169 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_170 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_171 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_172 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_173 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_174 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_175 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_176 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_177 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_178 = double_tape(double_tape_pointer)
      UHAT%d = UHAT%d+FLUX(1)%d*(OpenAD_Symbol_115)
      ALP15M%d = ALP15M%d+FLUX(1)%d*(OpenAD_Symbol_116)
      CAVE%d = CAVE%d+FLUX(1)%d*(OpenAD_Symbol_117)
      GM1INV%d = GM1INV%d+FLUX(1)%d*(OpenAD_Symbol_118)
      ALP15P%d = ALP15P%d+FLUX(1)%d*(OpenAD_Symbol_119)
      THTAVE%d = THTAVE%d+FLUX(1)%d*(OpenAD_Symbol_120)
      MU%d = MU%d+FLUX(1)%d*(OpenAD_Symbol_121)
      UTILDE%d = UTILDE%d+FLUX(1)%d*(OpenAD_Symbol_122)
      ALP2%d = ALP2%d+FLUX(1)%d*(OpenAD_Symbol_123)
      VTILDE%d = VTILDE%d+FLUX(1)%d*(OpenAD_Symbol_124)
      ALP3%d = ALP3%d+FLUX(1)%d*(OpenAD_Symbol_125)
      WTILDE%d = WTILDE%d+FLUX(1)%d*(OpenAD_Symbol_126)
      ALP4%d = ALP4%d+FLUX(1)%d*(OpenAD_Symbol_127)
      OpenAD_prp_24%d = OpenAD_prp_24%d+FLUX(1)%d*(OpenAD_Symbol_128)
      UHATL%d = UHATL%d+FLUX(1)%d*(OpenAD_Symbol_129)
      NSIZE%d = NSIZE%d+FLUX(1)%d*(OpenAD_Symbol_130)
      FLUX(1)%d = 0.0d0
      NZHAT%d = NZHAT%d+DSS5%d*(OpenAD_Symbol_131)
      ALP15M%d = ALP15M%d+DSS5%d*(OpenAD_Symbol_132)
      NYHAT%d = NYHAT%d+DSS5%d*(OpenAD_Symbol_133)
      ALP2%d = ALP2%d+DSS5%d*(OpenAD_Symbol_134)
      NXHAT%d = NXHAT%d+DSS5%d*(OpenAD_Symbol_135)
      ALP3%d = ALP3%d+DSS5%d*(OpenAD_Symbol_136)
      WAVE%d = WAVE%d+DSS5%d*(OpenAD_Symbol_137)
      MU%d = MU%d+DSS5%d*(OpenAD_Symbol_138)
      DSS5%d = 0.0d0
      NYHAT%d = NYHAT%d+DSS4%d*(OpenAD_Symbol_139)
      ALP15M%d = ALP15M%d+DSS4%d*(OpenAD_Symbol_140)
      NXHAT%d = NXHAT%d+DSS4%d*(OpenAD_Symbol_141)
      ALP4%d = ALP4%d+DSS4%d*(OpenAD_Symbol_142)
      NZHAT%d = NZHAT%d+DSS4%d*(OpenAD_Symbol_143)
      ALP2%d = ALP2%d+DSS4%d*(OpenAD_Symbol_144)
      VAVE%d = VAVE%d+DSS4%d*(OpenAD_Symbol_145)
      MU%d = MU%d+DSS4%d*(OpenAD_Symbol_146)
      DSS4%d = 0.0d0
      NXHAT%d = NXHAT%d+DSS3%d*(OpenAD_Symbol_147)
      ALP15M%d = ALP15M%d+DSS3%d*(OpenAD_Symbol_148)
      NZHAT%d = NZHAT%d+DSS3%d*(OpenAD_Symbol_149)
      ALP3%d = ALP3%d+DSS3%d*(OpenAD_Symbol_150)
      NYHAT%d = NYHAT%d+DSS3%d*(OpenAD_Symbol_151)
      ALP4%d = ALP4%d+DSS3%d*(OpenAD_Symbol_152)
      UAVE%d = UAVE%d+DSS3%d*(OpenAD_Symbol_153)
      MU%d = MU%d+DSS3%d*(OpenAD_Symbol_154)
      DSS3%d = 0.0d0
      MU%d = MU%d+DSS2%d
      DSS2%d = 0.0d0
      NZHAT%d = NZHAT%d+MU%d*(OpenAD_Symbol_155)
      ALP4%d = ALP4%d+MU%d*(OpenAD_Symbol_156)
      NYHAT%d = NYHAT%d+MU%d*(OpenAD_Symbol_157)
      ALP3%d = ALP3%d+MU%d*(OpenAD_Symbol_158)
      NXHAT%d = NXHAT%d+MU%d*(OpenAD_Symbol_159)
      ALP2%d = ALP2%d+MU%d*(OpenAD_Symbol_160)
      CAVE%d = CAVE%d+MU%d*(OpenAD_Symbol_161)
      ALP15P%d = ALP15P%d+MU%d*(OpenAD_Symbol_162)
      MU%d = 0.0d0
      NZHAT%d = NZHAT%d+UHATL%d*(OpenAD_Symbol_163)
      PRIML(5)%d = PRIML(5)%d+UHATL%d*(OpenAD_Symbol_164)
      NYHAT%d = NYHAT%d+UHATL%d*(OpenAD_Symbol_165)
      PRIML(4)%d = PRIML(4)%d+UHATL%d*(OpenAD_Symbol_166)
      NXHAT%d = NXHAT%d+UHATL%d*(OpenAD_Symbol_167)
      PRIML(3)%d = PRIML(3)%d+UHATL%d*(OpenAD_Symbol_168)
      UHATL%d = 0.0d0
      EL%d = EL%d+OpenAD_prp_24%d
      PRIML(1)%d = PRIML(1)%d+OpenAD_prp_24%d
      OpenAD_prp_24%d = 0.0d0
      ALP5%d = ALP5%d-ALP15M%d
      ALP1%d = ALP1%d+ALP15M%d
      ALP15M%d = 0.0d0
      ALP5%d = ALP5%d+ALP15P%d
      ALP1%d = ALP1%d+ALP15P%d
      ALP15P%d = 0.0d0
      OpenAD_prp_23%d = OpenAD_prp_23%d+ALP5%d*(OpenAD_Symbol_169)
      ALAMCP%d = ALAMCP%d+ALP5%d*(OpenAD_Symbol_170)
      ALP5%d = 0.0d0
      OpenAD_prp_22%d = OpenAD_prp_22%d+ALP4%d*(OpenAD_Symbol_171)
      ALAMU%d = ALAMU%d+ALP4%d*(OpenAD_Symbol_172)
      ALP4%d = 0.0d0
      OpenAD_prp_21%d = OpenAD_prp_21%d+ALP3%d*(OpenAD_Symbol_173)
      ALAMU%d = ALAMU%d+ALP3%d*(OpenAD_Symbol_174)
      ALP3%d = 0.0d0
      OpenAD_prp_20%d = OpenAD_prp_20%d+ALP2%d*(OpenAD_Symbol_175)
      ALAMU%d = ALAMU%d+ALP2%d*(OpenAD_Symbol_176)
      ALP2%d = 0.0d0
      OpenAD_prp_19%d = OpenAD_prp_19%d+ALP1%d*(OpenAD_Symbol_177)
      ALAMCM%d = ALAMCM%d+ALP1%d*(OpenAD_Symbol_178)
      ALP1%d = 0.0d0
      ALP5%d = ALP5%d+OpenAD_prp_23%d
      OpenAD_prp_23%d = 0.0d0
      ALP4%d = ALP4%d+OpenAD_prp_22%d
      OpenAD_prp_22%d = 0.0d0
      ALP3%d = ALP3%d+OpenAD_prp_21%d
      OpenAD_prp_21%d = 0.0d0
      ALP2%d = ALP2%d+OpenAD_prp_20%d
      OpenAD_prp_20%d = 0.0d0
      ALP1%d = ALP1%d+OpenAD_prp_19%d
      OpenAD_prp_19%d = 0.0d0
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_179 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_180 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_181 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_182 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_183 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_184 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_185 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_186 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_187 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_188 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_189 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_190 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_191 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_192 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_193 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_194 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_195 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_196 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_197 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_198 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_199 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_200 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_201 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_202 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_203 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_204 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_205 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_206 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_207 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_208 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_209 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_210 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_211 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_212 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_213 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_214 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_215 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_216 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_217 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_218 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_219 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_220 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_221 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_222 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_223 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_224 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_225 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_226 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_227 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_228 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_229 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_230 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_231 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_232 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_233 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_234 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_235 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_236 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_237 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_238 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_239 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_240 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_241 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_242 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_243 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_244 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_245 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_246 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_247 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_248 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_249 = double_tape(double_tape_pointer)
      NYHAT%d = NYHAT%d+ALP4%d*(OpenAD_Symbol_179)
      DRU%d = DRU%d+ALP4%d*(OpenAD_Symbol_180)
      NZHAT%d = NZHAT%d+ALP4%d*(OpenAD_Symbol_181)
      OMEGA%d = OMEGA%d+ALP4%d*(OpenAD_Symbol_182)
      OpenAD_prp_15%d = OpenAD_prp_15%d+ALP4%d*(OpenAD_Symbol_183)
      DR%d = DR%d+ALP4%d*(OpenAD_Symbol_184)
      NXHAT%d = NXHAT%d+ALP4%d*(OpenAD_Symbol_185)
      DRV%d = DRV%d+ALP4%d*(OpenAD_Symbol_186)
      ALP4%d = 0.0d0
      NXHAT%d = NXHAT%d+ALP3%d*(OpenAD_Symbol_187)
      DRW%d = DRW%d+ALP3%d*(OpenAD_Symbol_188)
      NYHAT%d = NYHAT%d+ALP3%d*(OpenAD_Symbol_189)
      OMEGA%d = OMEGA%d+ALP3%d*(OpenAD_Symbol_190)
      OpenAD_prp_14%d = OpenAD_prp_14%d+ALP3%d*(OpenAD_Symbol_191)
      DR%d = DR%d+ALP3%d*(OpenAD_Symbol_192)
      NZHAT%d = NZHAT%d+ALP3%d*(OpenAD_Symbol_193)
      DRU%d = DRU%d+ALP3%d*(OpenAD_Symbol_194)
      ALP3%d = 0.0d0
      NZHAT%d = NZHAT%d+ALP2%d*(OpenAD_Symbol_195)
      DRV%d = DRV%d+ALP2%d*(OpenAD_Symbol_196)
      NXHAT%d = NXHAT%d+ALP2%d*(OpenAD_Symbol_197)
      OMEGA%d = OMEGA%d+ALP2%d*(OpenAD_Symbol_198)
      OpenAD_prp_13%d = OpenAD_prp_13%d+ALP2%d*(OpenAD_Symbol_199)
      DR%d = DR%d+ALP2%d*(OpenAD_Symbol_200)
      NYHAT%d = NYHAT%d+ALP2%d*(OpenAD_Symbol_201)
      DRW%d = DRW%d+ALP2%d*(OpenAD_Symbol_202)
      ALP2%d = 0.0d0
      OpenAD_prp_18%d = OpenAD_prp_18%d+ALP5%d*(5.0D-01)
      ALP5%d = 0.0d0
      OpenAD_prp_17%d = OpenAD_prp_17%d+ALP1%d*(5.0D-01)
      ALP1%d = 0.0d0
      UHAT%d = UHAT%d+OpenAD_prp_18%d*(OpenAD_Symbol_203)
      DR%d = DR%d+OpenAD_prp_18%d*(OpenAD_Symbol_204)
      OMEGA%d = OMEGA%d+OpenAD_prp_18%d
      NDDRU%d = NDDRU%d+OpenAD_prp_18%d
      OpenAD_prp_18%d = 0.0d0
      UHAT%d = UHAT%d+OpenAD_prp_17%d*(OpenAD_Symbol_205)
      DR%d = DR%d+OpenAD_prp_17%d*(OpenAD_Symbol_206)
      NDDRU%d = NDDRU%d-OpenAD_prp_17%d
      OMEGA%d = OMEGA%d+OpenAD_prp_17%d
      OpenAD_prp_17%d = 0.0d0
      CAVE%d = CAVE%d+OMEGA%d*(OpenAD_Symbol_207)
      GM1%d = GM1%d+OMEGA%d*(OpenAD_Symbol_208)
      OpenAD_prp_16%d = OpenAD_prp_16%d+OMEGA%d*(OpenAD_Symbol_209)
      OMEGA%d = 0.0d0
      NZHAT%d = NZHAT%d+NDDRU%d*(OpenAD_Symbol_210)
      DRW%d = DRW%d+NDDRU%d*(OpenAD_Symbol_211)
      NYHAT%d = NYHAT%d+NDDRU%d*(OpenAD_Symbol_212)
      DRV%d = DRV%d+NDDRU%d*(OpenAD_Symbol_213)
      NXHAT%d = NXHAT%d+NDDRU%d*(OpenAD_Symbol_214)
      DRU%d = DRU%d+NDDRU%d*(OpenAD_Symbol_215)
      NDDRU%d = 0.0d0
      WAVE%d = WAVE%d+OpenAD_prp_16%d*(OpenAD_Symbol_216)
      DRW%d = DRW%d+OpenAD_prp_16%d*(OpenAD_Symbol_217)
      VAVE%d = VAVE%d+OpenAD_prp_16%d*(OpenAD_Symbol_218)
      DRV%d = DRV%d+OpenAD_prp_16%d*(OpenAD_Symbol_219)
      UAVE%d = UAVE%d+OpenAD_prp_16%d*(OpenAD_Symbol_220)
      DRU%d = DRU%d+OpenAD_prp_16%d*(OpenAD_Symbol_221)
      THTAVE%d = THTAVE%d+OpenAD_prp_16%d*(OpenAD_Symbol_222)
      DR%d = DR%d+OpenAD_prp_16%d*(OpenAD_Symbol_223)
      THETAR%d = THETAR%d+OpenAD_prp_16%d*(OpenAD_Symbol_224)
      PRIMR(2)%d = PRIMR(2)%d+OpenAD_prp_16%d*(OpenAD_Symbol_225)
      GM1INV%d = GM1INV%d+OpenAD_prp_16%d*(OpenAD_Symbol_226)
      PRIMR(1)%d = PRIMR(1)%d+OpenAD_prp_16%d*(OpenAD_Symbol_227)
      EL%d = EL%d-OpenAD_prp_16%d
      OpenAD_prp_16%d = 0.0d0
      NZHAT%d = NZHAT%d+OpenAD_prp_15%d*(OpenAD_Symbol_228)
      CAVE%d = CAVE%d+OpenAD_prp_15%d*(OpenAD_Symbol_229)
      WTILDE%d = WTILDE%d-OpenAD_prp_15%d
      OpenAD_prp_15%d = 0.0d0
      NYHAT%d = NYHAT%d+OpenAD_prp_14%d*(OpenAD_Symbol_230)
      CAVE%d = CAVE%d+OpenAD_prp_14%d*(OpenAD_Symbol_231)
      VTILDE%d = VTILDE%d-OpenAD_prp_14%d
      OpenAD_prp_14%d = 0.0d0
      NXHAT%d = NXHAT%d+OpenAD_prp_13%d*(OpenAD_Symbol_232)
      CAVE%d = CAVE%d+OpenAD_prp_13%d*(OpenAD_Symbol_233)
      UTILDE%d = UTILDE%d-OpenAD_prp_13%d
      OpenAD_prp_13%d = 0.0d0
      THETAL%d = THETAL%d+EL%d*(OpenAD_Symbol_234)
      PRIML(2)%d = PRIML(2)%d+EL%d*(OpenAD_Symbol_235)
      GM1INV%d = GM1INV%d+EL%d*(OpenAD_Symbol_236)
      PRIML(1)%d = PRIML(1)%d+EL%d*(OpenAD_Symbol_237)
      EL%d = 0.0d0
      OpenAD_prp_12%d = OpenAD_prp_12%d+ALAMU%d*(5.0D-01)
      ALAMU%d = 0.0d0
      OpenAD_prp_11%d = OpenAD_prp_11%d+ALAMCP%d*(5.0D-01)
      ALAMCP%d = 0.0d0
      OpenAD_prp_10%d = OpenAD_prp_10%d+ALAMCM%d*(5.0D-01)
      ALAMCM%d = 0.0d0
      PRIMR(5)%d = PRIMR(5)%d+DRW%d*(OpenAD_Symbol_238)
      PRIMR(2)%d = PRIMR(2)%d+DRW%d*(OpenAD_Symbol_239)
      RWL%d = RWL%d-DRW%d
      DRW%d = 0.0d0
      PRIMR(4)%d = PRIMR(4)%d+DRV%d*(OpenAD_Symbol_240)
      PRIMR(2)%d = PRIMR(2)%d+DRV%d*(OpenAD_Symbol_241)
      RVL%d = RVL%d-DRV%d
      DRV%d = 0.0d0
      PRIMR(3)%d = PRIMR(3)%d+DRU%d*(OpenAD_Symbol_242)
      PRIMR(2)%d = PRIMR(2)%d+DRU%d*(OpenAD_Symbol_243)
      RUL%d = RUL%d-DRU%d
      DRU%d = 0.0d0
      PRIML(2)%d = PRIML(2)%d-DR%d
      PRIMR(2)%d = PRIMR(2)%d+DR%d
      DR%d = 0.0d0
      PRIML(5)%d = PRIML(5)%d+RWL%d*(OpenAD_Symbol_244)
      PRIML(2)%d = PRIML(2)%d+RWL%d*(OpenAD_Symbol_245)
      RWL%d = 0.0d0
      PRIML(4)%d = PRIML(4)%d+RVL%d*(OpenAD_Symbol_246)
      PRIML(2)%d = PRIML(2)%d+RVL%d*(OpenAD_Symbol_247)
      RVL%d = 0.0d0
      PRIML(3)%d = PRIML(3)%d+RUL%d*(OpenAD_Symbol_248)
      PRIML(2)%d = PRIML(2)%d+RUL%d*(OpenAD_Symbol_249)
      RUL%d = 0.0d0
      OpenAD_prp_9%d = OpenAD_prp_9%d-OpenAD_prp_12%d
      LAMU%d = LAMU%d+OpenAD_prp_12%d
      OpenAD_prp_12%d = 0.0d0
      OpenAD_prp_8%d = OpenAD_prp_8%d-OpenAD_prp_11%d
      LAMCP%d = LAMCP%d+OpenAD_prp_11%d
      OpenAD_prp_11%d = 0.0d0
      OpenAD_prp_7%d = OpenAD_prp_7%d-OpenAD_prp_10%d
      LAMCM%d = LAMCM%d+OpenAD_prp_10%d
      OpenAD_prp_10%d = 0.0d0
      ALAMU%d = ALAMU%d+OpenAD_prp_9%d
      OpenAD_prp_9%d = 0.0d0
      ALAMCP%d = ALAMCP%d+OpenAD_prp_8%d
      OpenAD_prp_8%d = 0.0d0
      ALAMCM%d = ALAMCM%d+OpenAD_prp_7%d
      OpenAD_prp_7%d = 0.0d0
      integer_tape_pointer = integer_tape_pointer-1
      OpenAD_Symbol_0 = integer_tape(integer_tape_pointer)
      IF (OpenAD_Symbol_0.ne.0) THEN
        LAMU%d = LAMU%d+ALAMU%d
        ALAMU%d = 0.0d0
      ELSE
        double_tape_pointer = double_tape_pointer-1
        OpenAD_Symbol_250 = double_tape(double_tape_pointer)
        double_tape_pointer = double_tape_pointer-1
        OpenAD_Symbol_251 = double_tape(double_tape_pointer)
        OpenAD_prp_29%d = OpenAD_prp_29%d+ALAMU%d*(OpenAD_Symbol_250)
        DELTA2%d = DELTA2%d+ALAMU%d*(OpenAD_Symbol_251)
        ALAMU%d = 0.0d0
        LAM2%d = LAM2%d+OpenAD_prp_29%d
        DELTA2%d = DELTA2%d+OpenAD_prp_29%d
        OpenAD_prp_29%d = 0.0d0
      ENDIF
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_90 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_91 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_92 = double_tape(double_tape_pointer)
      OpenAD_prp_6%d = OpenAD_prp_6%d+DELTA2%d*(OpenAD_Symbol_90)
      LEFIX%d = LEFIX%d+DELTA2%d*(OpenAD_Symbol_91)
      DELTA2%d = 0.0d0
      LAMU%d = LAMU%d+LAM2%d*(OpenAD_Symbol_92)
      LAM2%d = 0.0d0
      UHAT%d = UHAT%d+OpenAD_prp_6%d
      CAVE%d = CAVE%d+OpenAD_prp_6%d
      OpenAD_prp_6%d = 0.0d0
      integer_tape_pointer = integer_tape_pointer-1
      OpenAD_Symbol_1 = integer_tape(integer_tape_pointer)
      IF (OpenAD_Symbol_1.ne.0) THEN
        LAMCP%d = LAMCP%d+ALAMCP%d
        ALAMCP%d = 0.0d0
      ELSE
        double_tape_pointer = double_tape_pointer-1
        OpenAD_Symbol_252 = double_tape(double_tape_pointer)
        double_tape_pointer = double_tape_pointer-1
        OpenAD_Symbol_253 = double_tape(double_tape_pointer)
        OpenAD_prp_30%d = OpenAD_prp_30%d+ALAMCP%d*(OpenAD_Symbol_252)
        DELTA2%d = DELTA2%d+ALAMCP%d*(OpenAD_Symbol_253)
        ALAMCP%d = 0.0d0
        LAM2%d = LAM2%d+OpenAD_prp_30%d
        DELTA2%d = DELTA2%d+OpenAD_prp_30%d
        OpenAD_prp_30%d = 0.0d0
      ENDIF
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_89 = double_tape(double_tape_pointer)
      LAMCP%d = LAMCP%d+LAM2%d*(OpenAD_Symbol_89)
      LAM2%d = 0.0d0
      integer_tape_pointer = integer_tape_pointer-1
      OpenAD_Symbol_2 = integer_tape(integer_tape_pointer)
      IF (OpenAD_Symbol_2.ne.0) THEN
        LAMCM%d = LAMCM%d+ALAMCM%d
        ALAMCM%d = 0.0d0
      ELSE
        double_tape_pointer = double_tape_pointer-1
        OpenAD_Symbol_254 = double_tape(double_tape_pointer)
        double_tape_pointer = double_tape_pointer-1
        OpenAD_Symbol_255 = double_tape(double_tape_pointer)
        OpenAD_prp_31%d = OpenAD_prp_31%d+ALAMCM%d*(OpenAD_Symbol_254)
        DELTA2%d = DELTA2%d+ALAMCM%d*(OpenAD_Symbol_255)
        ALAMCM%d = 0.0d0
        LAM2%d = LAM2%d+OpenAD_prp_31%d
        DELTA2%d = DELTA2%d+OpenAD_prp_31%d
        OpenAD_prp_31%d = 0.0d0
      ENDIF
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_28 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_29 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_30 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_31 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_32 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_33 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_34 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_35 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_36 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_37 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_38 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_39 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_40 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_41 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_42 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_43 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_44 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_45 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_46 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_47 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_48 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_49 = double_tape(double_tape_pointer)
      OpenAD_prp_5%d = OpenAD_prp_5%d+DELTA2%d*(OpenAD_Symbol_28)
      NLEFIX%d = NLEFIX%d+DELTA2%d*(OpenAD_Symbol_29)
      DELTA2%d = 0.0d0
      LAMCM%d = LAMCM%d+LAM2%d*(OpenAD_Symbol_30)
      LAM2%d = 0.0d0
      UHAT%d = UHAT%d+OpenAD_prp_5%d
      CAVE%d = CAVE%d+OpenAD_prp_5%d
      OpenAD_prp_5%d = 0.0d0
      UHAT%d = UHAT%d+LAMCP%d
      CAVE%d = CAVE%d+LAMCP%d
      LAMCP%d = 0.0d0
      UHAT%d = UHAT%d+LAMU%d
      LAMU%d = 0.0d0
      CAVE%d = CAVE%d-LAMCM%d
      UHAT%d = UHAT%d+LAMCM%d
      LAMCM%d = 0.0d0
      WAVE%d = WAVE%d+UHAT%d*(OpenAD_Symbol_31)
      NZHAT%d = NZHAT%d+UHAT%d*(OpenAD_Symbol_32)
      VAVE%d = VAVE%d+UHAT%d*(OpenAD_Symbol_33)
      NYHAT%d = NYHAT%d+UHAT%d*(OpenAD_Symbol_34)
      UAVE%d = UAVE%d+UHAT%d*(OpenAD_Symbol_35)
      NXHAT%d = NXHAT%d+UHAT%d*(OpenAD_Symbol_36)
      UHAT%d = 0.0d0
      UAVE%d = UAVE%d+WTILDE%d*(OpenAD_Symbol_37)
      NYHAT%d = NYHAT%d+WTILDE%d*(OpenAD_Symbol_38)
      VAVE%d = VAVE%d+WTILDE%d*(OpenAD_Symbol_39)
      NXHAT%d = NXHAT%d+WTILDE%d*(OpenAD_Symbol_40)
      WTILDE%d = 0.0d0
      WAVE%d = WAVE%d+VTILDE%d*(OpenAD_Symbol_41)
      NXHAT%d = NXHAT%d+VTILDE%d*(OpenAD_Symbol_42)
      UAVE%d = UAVE%d+VTILDE%d*(OpenAD_Symbol_43)
      NZHAT%d = NZHAT%d+VTILDE%d*(OpenAD_Symbol_44)
      VTILDE%d = 0.0d0
      VAVE%d = VAVE%d+UTILDE%d*(OpenAD_Symbol_45)
      NZHAT%d = NZHAT%d+UTILDE%d*(OpenAD_Symbol_46)
      WAVE%d = WAVE%d+UTILDE%d*(OpenAD_Symbol_47)
      NYHAT%d = NYHAT%d+UTILDE%d*(OpenAD_Symbol_48)
      UTILDE%d = 0.0d0
      OpenAD_prp_4%d = OpenAD_prp_4%d+CAVE%d*(OpenAD_Symbol_49)
      CAVE%d = 0.0d0
      CAVE%d = CAVE%d+OpenAD_prp_4%d
      OpenAD_prp_4%d = 0.0d0
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_50 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_51 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_52 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_53 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_54 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_55 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_56 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_57 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_58 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_59 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_60 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_61 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_62 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_63 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_64 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_65 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_66 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_67 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_68 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_69 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_70 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_71 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_72 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_73 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_74 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_75 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_76 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_77 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_78 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_79 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_80 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_81 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_82 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_83 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_84 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_85 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_86 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_87 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_88 = double_tape(double_tape_pointer)
      OpenAD_prp_0%d = OpenAD_prp_0%d+CAVE%d*(OpenAD_Symbol_50)
      HL%d = HL%d+CAVE%d*(OpenAD_Symbol_51)
      HR%d = HR%d+CAVE%d*(OpenAD_Symbol_52)
      OpenAD_prp_3%d = OpenAD_prp_3%d+CAVE%d*(OpenAD_Symbol_53)
      GM1%d = GM1%d+CAVE%d*(OpenAD_Symbol_54)
      CAVE%d = 0.0d0
      OpenAD_prp_3%d = OpenAD_prp_3%d+THTAVE%d*(5.0D-01)
      THTAVE%d = 0.0d0
      UAVE%d = UAVE%d+OpenAD_prp_3%d*(OpenAD_Symbol_55)
      VAVE%d = VAVE%d+OpenAD_prp_3%d*(OpenAD_Symbol_56)
      WAVE%d = WAVE%d+OpenAD_prp_3%d*(OpenAD_Symbol_57)
      OpenAD_prp_3%d = 0.0d0
      OpenAD_prp_0%d = OpenAD_prp_0%d+WAVE%d*(OpenAD_Symbol_58)
      PRIML(5)%d = PRIML(5)%d+WAVE%d*(OpenAD_Symbol_59)
      PRIMR(5)%d = PRIMR(5)%d+WAVE%d*(OpenAD_Symbol_60)
      WAVE%d = 0.0d0
      OpenAD_prp_0%d = OpenAD_prp_0%d+VAVE%d*(OpenAD_Symbol_61)
      PRIML(4)%d = PRIML(4)%d+VAVE%d*(OpenAD_Symbol_62)
      PRIMR(4)%d = PRIMR(4)%d+VAVE%d*(OpenAD_Symbol_63)
      VAVE%d = 0.0d0
      PRIML(3)%d = PRIML(3)%d+UAVE%d*(OpenAD_Symbol_64)
      OpenAD_prp_0%d = OpenAD_prp_0%d+UAVE%d*(OpenAD_Symbol_65)
      PRIMR(3)%d = PRIMR(3)%d+UAVE%d*(OpenAD_Symbol_66)
      UAVE%d = 0.0d0
      GM1INV%d = GM1INV%d+HR%d*(OpenAD_Symbol_67)
      GAMMA%d = GAMMA%d+HR%d*(OpenAD_Symbol_68)
      PRIMR(1)%d = PRIMR(1)%d+HR%d*(OpenAD_Symbol_69)
      PRIMR(2)%d = PRIMR(2)%d+HR%d*(OpenAD_Symbol_70)
      THETAR%d = THETAR%d+HR%d
      HR%d = 0.0d0
      GM1INV%d = GM1INV%d+HL%d*(OpenAD_Symbol_71)
      GAMMA%d = GAMMA%d+HL%d*(OpenAD_Symbol_72)
      PRIML(1)%d = PRIML(1)%d+HL%d*(OpenAD_Symbol_73)
      PRIML(2)%d = PRIML(2)%d+HL%d*(OpenAD_Symbol_74)
      THETAL%d = THETAL%d+HL%d
      HL%d = 0.0d0
      OpenAD_prp_2%d = OpenAD_prp_2%d+THETAR%d*(5.0D-01)
      THETAR%d = 0.0d0
      OpenAD_prp_1%d = OpenAD_prp_1%d+THETAL%d*(5.0D-01)
      THETAL%d = 0.0d0
      PRIMR(4)%d = PRIMR(4)%d+OpenAD_prp_2%d*(OpenAD_Symbol_75)
      PRIMR(3)%d = PRIMR(3)%d+OpenAD_prp_2%d*(OpenAD_Symbol_76)
      PRIMR(5)%d = PRIMR(5)%d+OpenAD_prp_2%d*(OpenAD_Symbol_77)
      OpenAD_prp_2%d = 0.0d0
      PRIML(4)%d = PRIML(4)%d+OpenAD_prp_1%d*(OpenAD_Symbol_78)
      PRIML(3)%d = PRIML(3)%d+OpenAD_prp_1%d*(OpenAD_Symbol_79)
      PRIML(5)%d = PRIML(5)%d+OpenAD_prp_1%d*(OpenAD_Symbol_80)
      OpenAD_prp_1%d = 0.0d0
      PRIML(2)%d = PRIML(2)%d+OpenAD_prp_0%d*(OpenAD_Symbol_81)
      PRIMR(2)%d = PRIMR(2)%d+OpenAD_prp_0%d*(OpenAD_Symbol_82)
      OpenAD_prp_0%d = 0.0d0
      NSIZEI%d = NSIZEI%d+NZHAT%d*(OpenAD_Symbol_83)
      NRM(3)%d = NRM(3)%d+NZHAT%d*(OpenAD_Symbol_84)
      NZHAT%d = 0.0d0
      NSIZEI%d = NSIZEI%d+NYHAT%d*(OpenAD_Symbol_85)
      NRM(2)%d = NRM(2)%d+NYHAT%d*(OpenAD_Symbol_86)
      NYHAT%d = 0.0d0
      NSIZEI%d = NSIZEI%d+NXHAT%d*(OpenAD_Symbol_87)
      NRM(1)%d = NRM(1)%d+NXHAT%d*(OpenAD_Symbol_88)
      NXHAT%d = 0.0d0
      integer_tape_pointer = integer_tape_pointer-1
      OpenAD_Symbol_3 = integer_tape(integer_tape_pointer)
      IF (OpenAD_Symbol_3.ne.0) THEN
        double_tape_pointer = double_tape_pointer-1
        OpenAD_Symbol_27 = double_tape(double_tape_pointer)
        NSIZE%d = NSIZE%d+NSIZEI%d*(OpenAD_Symbol_27)
        NSIZEI%d = 0.0d0
      ELSE
        NSIZEI%d = 0.0d0
      ENDIF
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_24 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_25 = double_tape(double_tape_pointer)
      double_tape_pointer = double_tape_pointer-1
      OpenAD_Symbol_26 = double_tape(double_tape_pointer)
      NRM(1)%d = NRM(1)%d+NSIZE%d*(OpenAD_Symbol_24)
      NRM(2)%d = NRM(2)%d+NSIZE%d*(OpenAD_Symbol_25)
      NRM(3)%d = NRM(3)%d+NSIZE%d*(OpenAD_Symbol_26)
      NSIZE%d = 0.0d0

C adjoint end
            our_rev_mode%arg_store=.FALSE.
            our_rev_mode%arg_restore=.TRUE.
            our_rev_mode%plain=.FALSE.
            our_rev_mode%tape=.TRUE.
            our_rev_mode%adjoint=.FALSE.
          end if
        end subroutine ad_roehf5
